Result
css
#box { display: flex; align-items: center; justify-content: center; width: 300px; height: 100px; color: white; } .gradient-border {/*変数設定*/ --borderWidth: 3px; background: #1D1F20; position: relative; border-radius: var(--borderWidth); } .gradient-border:after {/*グラデーション設定。位置は先ほどの変数を代入してclacで計算*/ content: ''; position: absolute; top: calc(-1 * var(--borderWidth)); left: calc(-1 * var(--borderWidth)); height: calc(100% + var(--borderWidth) * 2); width: calc(100% + var(--borderWidth) * 2); background: linear-gradient(60deg, #f79533, #f37055, #ef4e7b, #a166ab, #5073b8, #1098ad, #07b39b, #6fba82); border-radius: calc(2 * var(--borderWidth)); z-index: -1; animation: animatedgradient 3s ease alternate infinite; background-size: 300% 300%; } @keyframes animatedgradient {/*アニメーション設定*/ 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
html
<div class="gradient-border" id="box">foo</div>
ca i use
css変数のサポート状況