LPデザイン以外でもプレゼンテーション資料としてもよく使われている、ペンタゴン・アロー型のステップパターンを紹介します。
ソースコード
index.html
<div class='step'>
<ul class='pentagon'>
<li>
<div class='arrow'>Design</div>
<div class='text'>新しいアイデアをデザイン(設計)する。</div>
</li>
<li>
<div class='arrow'>Develop</div>
<div class='text'>デザインした設計どおりに、構築(開発)する。</div>
</li>
<li>
<div class='arrow'>Test</div>
<div class='text'>構築できたら、テスト(検証)する。</div>
</li>
<li>
<div class='arrow'>Release</div>
<div class='text'>問題が無いことが確認できたら、公開する。</div>
</li>
</ul>
</div>
pentagon.css
.step,
.step *,
.step *::before,
.step *::after{
-webkit-box-sizing : border-box;
-moz-box-sizing : border-box;
-o-box-sizing : border-box;
-ms-box-sizing : border-box;
box-sizing : border-box;
}
.step ul,
.step li{
list-style:none;
margin:0;
padding:0;
}
.step{
--size-width : 600px;
--size-height : 80px;
--size-arrow : 30px;
--size-gap : 10px;
--color-bg : #417a6e;
width : var(--size-width);
margin : 20px auto;
}
.step .pentagon{
display:flex;
gap:calc(var(--size-arrow) + var(--size-gap));
width:calc(100% - var(--size-arrow) * 2);
margin:0 auto;
}
.step .pentagon > *{
flex: 1;
}
.step .pentagon > * .arrow{
background-color: var(--color-bg);
position:relative;
height:var(--size-height);
color:white;
text-align:center;
padding:10px 0;
display:flex;
align-items:center;
justify-content:center;
}
.step .pentagon > * .arrow > *{
white-space:normal;
word-break:break-all;
}
.step .pentagon > *:first-child .arrow::before{
content:'';
position:absolute;
left:calc(var(--size-arrow) * -1);
top:0;
height:100%;
width:var(--size-arrow);
background-color:var(--color-bg);
}
.step .pentagon > *:not(:first-child) .arrow::before{
content:'';
position:absolute;
left:calc(var(--size-arrow) * -1);
top:0;
background-color:transparent;
z-index:-1;
width: 0px;
height: 0px;
border-style: solid;
border-width: calc(var(--size-height) / 2) var(--size-arrow) calc(var(--size-height) / 2) var(--size-arrow);
border-color: var(--color-bg) var(--color-bg) var(--color-bg) transparent;
}
.step .pentagon > * .arrow::after{
content:'';
position:absolute;
left:100%;
top:0;
background-color:transparent;
z-index:1;
width: 0px;
height: 0px;
border-style: solid;
border-width: calc(var(--size-height) / 2) var(--size-arrow) calc(var(--size-height) / 2) var(--size-arrow);
border-color: transparent transparent transparent var(--color-bg);
}
.step .pentagon > * .text{
display:flex;
gap:var(--size-gap);
width:calc(100% + var(--size-arrow) * 1.1);
margin-left:calc(var(--size-arrow) * -0.8);
padding:10px 0;
}
.step .pentagon > * .text > *{
padding:10px;
flex: 1;
}
@media (max-width:700px){
.step{
width:100%;
}
.step .pentagon{
flex-direction : column;
width: calc(100% - var(--size-arrow));
gap:var(--size-gap);
}
.step .pentagon > *{
width:100%;
}
.step .pentagon > * .arrow{
width:calc(100% - var(--size-arrow));
max-width:250px;
}
.step .pentagon > * .text{
width:calc(100% - var(--size-arrow));
margin:var(--size-gap) auto 0;
}
.step .pentagon > * .arrow::before{
content:none!important;
}
}
デモ
-
Design
新しいアイデアをデザイン(設計)する。
-
Develop
デザインした設計どおりに、構築(開発)する。
-
Test
構築できたら、テスト(検証)する。
-
Release
問題が無いことが確認できたら、公開する。
解説
5角形の矢印なので、
ペンタゴン・アロー・プロセスという名前なんですね。
レスポンシブの状態は、今回は縦並びにしているだけなんですが、高さを短くした方がデザイン的にいいかもしれませんね。
PC表示の時の矢印部分は、疑似要素のbeforeとafterを駆使して、三角形を書く技で対応しています。
ちょっとした技としては、こうしたプログレス表示の場合、それぞれの項目で横幅を統一するのがポイントなので、
flex:1;というのを、横並び項目につけています。
※これ、他の場合でも使えるので、知らなかった人は覚えておきましょう。
flex-grow:1;と言うふうに解説されている場合もありますが、flex:1;の方が扱いやすいでしょう。
githubでソース取得
https://github.com/yugeta/step_pattern
branch : 04_pentagon
$ git clone https://github.com/yugeta/step_pattern.git -b 04_pentagon
0 件のコメント:
コメントを投稿