JSFiddle - React, Tailwind, and code Playground
by ken3desu
HTML
<div class="col">
<h4>少ないグラデーション指定(全体)</h4>
<div class="box few-grad"></div>
<h4>多いグラデーション指定(全体)</h4>
<div class="box many-grad"></div>
<h4>多いグラデーションを再現する要素群(全体)</h4>
<div class="box grad-box">
<div class="grad-item" style="background: rgba(0, 0, 0, 0); left:0%; width:calc(0.75% - 0%);"></div>
<div class="grad-item" style="background: rgba(0, 0, 255, 1); left:0.75%; width:calc(1.51% - 0.75%);"></div>
<div class="grad-item" style="background: rgba(0, 0, 128, 1); left:1.51%; width:calc(4.51% - 1.51%);"></div>
<div class="grad-item" style="background: rgba(0, 255, 0, 1); left:4.51%; width:calc(65.51% - 4.51%);"></div>
<div class="grad-item" style="background: rgba(128, 255, 255, 1); left:65.51%; width:calc(66.25% - 65.51%);"></div>
<div class="grad-item" style="background: rgba(128, 255, 0, 1); left:66.25%; width:calc(72.25% - 66.25%);"></div>
<div class="grad-item" style="background: rgba(255, 96, 0, 1); left:72.25%; width:calc(73% - 72.25%);"></div>
<div class="grad-item" style="background: rgba(255, 0, 0, 1); left:73%; width:calc(96% - 73%);"></div>
<div class="grad-item" style="background: rgba(255, 0, 0, 1); left:73%; width:calc(100% - 73%);"></div>
</div>
<h4>少ないグラデーション指定(左端を拡大)</h4>
<div class="box few-grad zoom"></div>
<h4>多いグラデーション指定(左端を拡大)</h4>
<div class="box many-grad zoom"></div>
<h4>多いグラデーションを再現する要素群(左端を拡大)</h4>
<div class="box grad-box zoom">
<div class="grad-item" style="background: rgba(0, 0, 0, 0); left:0%; width:calc(0.75% - 0%);"></div>
<div class="grad-item" style="background: rgba(0, 0, 255, 1); left:0.75%; width:calc(1.51% - 0.75%);"></div>
<div class="grad-item" style="background: rgba(0, 0, 128, 1); left:1.51%; width:calc(4.51% - 1.51%);"></div>
<div class="grad-item" style="background: rgba(0, 255, 0, 1); left:4.51%; width:calc(65.51% - 4.51%);"></div>
<div class="grad-item"...
SCSS
.col {
display: flex;
flex-direction: column;
}
.box {
width: 100%;
height: 100px;
margin: 1px 0;
&.zoom {
width: 1400%;
}
}
.few-grad {
background: linear-gradient(to right,
rgba(0, 0, 0, 0) 0% 0.75%,
rgba(0, 0, 255, 1) 0.75% 1.51%,
rgba(0, 0, 128, 1) 1.51% 4.51%,
rgba(0, 255, 0, 1) 4.51% 5.51%,
);
}
.many-grad {
background: linear-gradient(to right,
rgba(0, 0, 0, 0) 0% 0.75%,
rgba(0, 0, 255, 1) 0.75% 1.51%,
rgba(0, 0, 128, 1) 1.51% 4.51%,
rgba(0, 255, 0, 1) 4.51% 65.51%,
rgba(128, 255, 255, 1) 65.51% 66.25%,
rgba(128, 255, 0, 1) 66.25% 72.25%,
rgba(255, 96, 0, 1) 72.25% 73%,
rgba(255, 0, 0, 1) 73% 96%
);
}
.grad-box {
position: relative;
.grad-item {
height: 100%;
position: absolute;
}
}