CSS gradient + border-radius + content ํˆฌ๋ช… + blur

euuuuniiยท2024๋…„ 8์›” 6์ผ
post-thumbnail

๐Ÿ“ข ๋ฌด์—‡์ด๋“  ๊ทธ๋ผ๋ฐ์ด์…˜ ํ•˜๋Š”๋ฒ•!

๊ทธ๋ผ๋ฐ์ด์…˜์„ ๋งŒ๋“ค๋ฉด์„œ ์žˆ์—ˆ๋˜ ์‹œํ–‰์ฐฉ์˜ค๋“ค์„ ๊ธฐ๋กํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.
CSS ์ ์šฉ ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ๊ฐ€์žฅ ํ•˜๋‹จ์œผ๋กœ ์ด๋™ํ•ด์ฃผ์„ธ์š”!

0. ์š”๊ตฌ์‚ฌํ•ญ

์‹œ์ž‘์€ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋””์ž์ด๋„ˆ๋‹˜๊ป˜์„œ ์ด๋ ‡๊ฒŒ ๋ฐฐ๊ฒฝ๋„ ๊ทธ๋ผ๋ฐ์ด์…˜์ด๊ณ , ์ŠคํŠธ๋กœํฌ์— ๋ฌด๋ ค 3๊ฐœ์˜ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๋„ฃ์–ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์ด์—ˆ๋‹ค. ๊ทธ๋Ÿผ ์ด๊ฑธ ๋งŒ๋“ค๋Ÿฌ ๊ฐ€๋ณด์ž!

1. ๊ทธ๋ผ๋ฐ์ด์…˜ ๋ฌธ๋ฒ•

1-1. linear-gradient

๊ธฐ๋ณธ์ ์ธ ์„ ํ˜• ๊ทธ๋ผ๋ฐ์ด์…˜์ด๋‹ค. ๋ฐฉํ–ฅ๊ณผ ์ค‘๋‹จ์ ์„ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

.simple-linear {
  background: linear-gradient(blue, pink);
}
.diagonal-gradient {
  background: linear-gradient(to bottom right, blue, pink);
}
.angled-gradient {
  background: linear-gradient(70deg, blue, pink);
}
.multicolor-linear {
  background: linear-gradient(to left, lime 28px, red 77%, cyan);
}

1-2. radial-gradient

radial gradient๋Š” ์›, ํƒ€์›๋ชจ์–‘์˜ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉ๋œ๋‹ค.

1์ฒ˜๋Ÿผ ํ•˜๋ฉด ์ค‘์•™์— ๋งŒ๋“ค์–ด์ง€๊ณ , 2์ฒ˜๋Ÿผ ์‹œ์ž‘์ ์„ ์ง€์ •ํ•ด ์ค„ ์ˆ˜๋„ ์žˆ๋‹ค.

.radial-gradient1 {
  background: radial-gradient(cyan 0%, transparent 20%, salmon 40%);
}

.radial-gradient2 {
  background: radial-gradient(
    farthest-corner at 40px 40px,
    #f35 0%,
    #43e 100%
  );
}

1-3. ๊ทธ๋ผ๋ฐ์ด์…˜ ์ค‘์ฒฉํ•˜๊ธฐ

๊ธฐ๋ณธ์ ์œผ๋กœ gradient๋Š” ์™„์ „ ๋ถˆํˆฌ๋ช…ํ•˜์ง€ ์•Š์€ ์ด์ƒ, ์•„๋ž˜์ชฝ gradient๋„ ๋ณด์ด๋Š” ์ƒํƒœ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” rgb, rgba๋ฅผ ์ด์šฉํ•œํˆฌ๋ช…๋„ ์กฐ์ ˆ์ด ํ•„์š”ํ•˜๋‹ค.

.stacked-linear {
  background: linear-gradient(
      217deg,
      rgb(255 0 0 / 80%),
      rgb(255 0 0 / 0%) 70.71%
    ),
    linear-gradient(127deg, rgb(0 255 0 / 80%), rgb(0 255 0 / 0%) 70.71%),
    linear-gradient(336deg, rgb(0 0 255 / 80%), rgb(0 0 255 / 0%) 70.71%);
}

โŒจ๏ธ ๊ฐœ๋ฐœ

๊ทธ๋Ÿผ ์ด์ œ ๋ฌธ๋ฒ•์„ ์ด์šฉํ•ด์„œ ํ”ผ๊ทธ๋งˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ํ™•์ธํ•˜๋ฉฐ ๊ฐ๊ฐ ๋งŒ๋“ ๋‹ค!

.gradient-background {
	background: radial-gradient(farthest-corner at 0 0, rgba(104, 121, 251, 0.4) 0%, rgba(255, 255, 255, 0) 80%);
	background: linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0)),
	background: radial-gradient(farthest-corner at 0% 100%, rgba(255, 255, 255, 0) 0%, rgba(104, 121, 251, 0.25) 100%),
	background: linear-gradient(to bottom right, rgba(255, 255, 255, 0.5), rgba(104, 121, 251, 0.3), rgba(255, 255, 255, 0.5));
}

๐Ÿšจ ์ค‘๊ฐ„ ์ด์Šˆ

์›๋ž˜ ๋งˆ์ง€๋ง‰ gradient๊ฐ€ ์›๋ž˜ radial gradient๋กœ ๊ฐœ๋ฐœํ•ด์•ผํ•˜๋Š”๋ฐ ํŒŒ๋ž€์ƒ‰ ํˆฌ๋ช…๋„0 โ†’ ํฐ์ƒ‰ ๊ทธ๋ผ๋ฐ์ด์…˜์ด ํ”ผ๊ทธ๋งˆ์—์„œ๋Š” ๋‚˜์˜ค๋Š”๋ฐ, ๊ฐœ๋ฐœํ™”๋ฉด์—์„œ๋Š” ์ž˜ ์•ˆ๋ณด์˜€๋‹ค.

๊ทธ๋ž˜์„œ ๋””์ž์ด๋„ˆ๋ถ„๊ป˜ ํ—ˆ๋ฝ์„ ๋งก๊ณ  linear gradient๋กœ ๊ฐœ๋ฐœํ–ˆ๋‹ค,,

2. border์— gradient ์ ์šฉํ•˜๊ธฐ

1์—์„œ๋Š” background๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐ๊ฒฝ์— gradient๋ฅผ ์ ์šฉํ–ˆ๋‹ค๋ฉด, ์ด์ œ๋Š” border์— ์ ์šฉํ•ด๋ณผ ์ฐจ๋ก€์ด๋‹ค.

2-1. border-image

border-image,border-image-slice๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ผ๋ฐ์ด์…˜์„ ๋งŒ๋“œ๋ฉด ๊ณ ์žฅ์ด๋‚œ๋‹ค.

๊ทธ๋ผ๋ฐ์ด์…˜ ์ค‘์ฒฉ ์ ์šฉ์ด ์•ˆ๋  ๋ฟ๋”๋Ÿฌ, border-radius๋ฅผ ์ ์šฉํ•ด๋„ ๋„ค๋ชจ ๋ชจ์–‘์ด๋‹ค.

.border {
  border-radius: 3.3rem;
  border: 10px solid;
  border-image: linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0));
  border-image-slice: 1;
}

.border {
  border: 10px solid;
  border-image: linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0))
    radial-gradient(farthest-corner at 0% 100%, rgba(255, 255, 255, 0) 0%, rgba(104, 121, 251, 0.25) 100%)
    radial-gradient(farthest-corner at 0% 100%, rgba(255, 255, 255, 0) 0%, rgba(104, 121, 251, 0.25) 100%);
  border-image-slice: 1;
}

์•Œ๊ณ ๋ณด๋‹ˆ border-imageย ์†์„ฑ๊ณผย border-radiusย ์†์„ฑ์ดย ํ˜ธํ™˜์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

2-2. backgound-image

2๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ด๋‹ค. background-image์— ์ ์šฉํ•˜๊ณ , background-clip์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ border์˜์—ญ๊ณผ content์˜์—ญ์„ ๋‚˜๋ˆ„์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

.box {
  border: 10px dashed red;
  padding: 10px;
  background-image: linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0.6));
  background-clip: content-box; /* default */
}

background-clip์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ์˜์—ญ์—๋งŒ background-image๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ ์˜์—ญ์€ ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋” ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ฃผํ™ฉ์ƒ‰ : margin
  • ๋…ธ๋ž€์ƒ‰ : border
  • ์ดˆ๋ก์ƒ‰ : padding
  • ํŒŒ๋ž€์ƒ‰ : content

์ด ๊ธฐ๋ฒ•์„ ์ด์šฉํ•ด์„œ border-box์—๋Š” border์— ์ ์šฉ๋˜๊ธฐ ์›ํ•˜๋Š” ๊ทธ๋ผ๋ฐ์ด์…˜ 3๊ฐœ๋ฅผ ์ ์šฉํ•˜๊ณ , content-box์—๋งŒ ๋ฐฐ๊ฒฝ์— ์ ์šฉ๋  ๊ทธ๋ผ๋ฐ์ด์…˜1๊ฐœ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด ๋˜๊ฒ ๋‹ค! ๋Š” ๋‚ด ์•ˆ์ผํ•œ ์ƒ๊ฐ์ด์—ˆ๋‹ค.

.box {
  border: 20px solid transparent;
  border-radius: 3.5rem;
  background-image: radial-gradient(farthest-corner at 0 0, rgba(104, 121, 251, 0.4) 0%, rgba(255, 255, 255, 0) 80%),
    linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0)),
    radial-gradient(farthest-corner at 0% 100%, rgba(255, 255, 255, 0) 0%, rgba(104, 121, 251, 0.25) 100%),
    linear-gradient(to bottom right, rgba(255, 255, 255, 0.5), rgba(104, 121, 251, 0.3), rgba(255, 255, 255, 0.5));
  background-origin: border-box;
  background-clip: content-box, border-box, border-box, border-box;
}

์–˜ ์™œ์ด๋ ‡์ฃ ?? ์ƒ‰๊น”์ด ๋„ˆ๋ฌด ์ง„ํ•˜๋‹ค.!!

๊ทธ๋ž˜๋„ ๋‹คํ–‰์Šค๋Ÿฌ์šด ์ ์€ border-radius๊ฐ€ ์ ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ๊ณผ, border์— ๊ทธ๋ผ๋ฐ์ด์…˜ 3๊ฐœ๊ฐ€ ์ค‘์ฒฉ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.. ๐Ÿ˜‚

content์˜์—ญ์˜ ์ƒ‰์ƒ์ด ํˆฌ๋ช…๋„๊ฐ€ ์žˆ๋‹ค๋ณด๋‹ˆ ์•„๋ž˜์ชฝ border ์˜์—ญ๊นŒ์ง€ ์ค‘์ฒฉ๋˜์–ด์„œ content์˜์—ญ์—๋Š” ์ง€๊ธˆ 4๊ฐœ์˜ ๊ทธ๋ผ๋ฐ์ด์…˜์ด ๋ชจ๋‘ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ ๊ฒƒ์ด์—ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์œผ๋กœ, content์˜์—ญ์€ ํฐ์ƒ‰์œผ๋กœ ๋ฎ์–ด์ฃผ๊ณ , ์œ„์— ๋”ฐ๋กœ ๊ทธ๋ผ๋ฐ์ด์…˜ content๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

.Border {
  border: 3px solid transparent;
  border-radius: 3.5rem;
  background-image: linear-gradient(#fff, #fff),
    linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0)),
    radial-gradient(farthest-corner at 0% 100%, rgba(255, 255, 255, 0) 0%, rgba(104, 121, 251, 0.25) 100%),
    linear-gradient(to bottom right, rgba(255, 255, 255, 0.5), rgba(104, 121, 251, 0.3), rgba(255, 255, 255, 0.5));
  background-origin: border-box;
  background-clip: content-box, border-box, border-box, border-box;
}

.Background {
  width: 100%;
  height: 100%;
  border-radius: 3.3rem;
  background-image: radial-gradient(farthest-corner at 0 0, rgba(104, 121, 251, 0.4) 0%, rgba(255, 255, 255, 0) 80%);
}

์™€!! ์™„์„ฑ! ์ธ์ค„ ์•Œ์•˜๋Š”๋ฐ!!! ํ™”๋ฉด์— ๋„ฃ์œผ๋ ค๊ณ  ๋ณด๋‹ˆ ์•„์ง์ด๋‹คโ€ฆโ€ฆ

์—ฌ๊ธฐ์„œ ๋ฉˆ์ถ”๋ฉด, ๋ฐฐ๊ฒฝ์ด ํฐ์ƒ‰์ด ์•„๋‹ ๋•Œ๋Š” ์“ธ ์ˆ˜๊ฐ€ ์—†๋‹คโ€ฆ!! ๐Ÿคฃ ๐Ÿฅ•๐Ÿฅ•๐Ÿฅ•

3. ํˆฌ๋ช…ํ•œ ๋ฐฐ๊ฒฝ

์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ๋Š” ๋ญ๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•  ์ง€๋„ ๋ชจ๋ฅด๊ฒ ์—ˆ๋‹ค. ์„œ์นญ์„ ์—ด์‹ฌํžˆ ํ•˜๋‹ค๊ฐ€ ๊ด€๋ จํ•ด์„œ ๋ธ”๋กœ๊ทธ์— ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ ค๋‘์‹  ๋ถ„์ด ๋”ฑ ํ•œ ๋ถ„ ๊ณ„์…จ๋‹ค..! ์ง„์งœ ์ด ๋ถ„ ์•„๋‹ˆ์—ˆ์œผ๋ฉด,,, ํฌ๊ธฐํ•  ๋ป” ํ–ˆ๋‹ค..ใ…œใ…œ (๋ฌดํ•œํ•œ ๊ฐ์‚ฌ ์ธ์‚ฌ๋ฅผ..)

mask ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ๋Š” content-box์— ํฐ์ƒ‰์„ ์ ์šฉํ•˜๊ณ , ํฐ์ƒ‰์„ -webkit-mask-composite ๊ณผ mask-composite ์†์„ฑ์„ ์ด์šฉํ•ด์„œ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์€ ์—†์•  ํˆฌ๋ช…ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

-webkit-mask-composite ๊ณผ mask-composite ๋Š” ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š”๋ฐ, -webkit-mask-composite ๋Š” Chrome, Safari๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•˜๊ณ , mask-composite ๋Š” Firefox์—์„œ ์ง€์›ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์ค€๋‹ค.

์‹ค์ œ๋กœ -webkit-mask-composite ๊ณต์‹๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜๋ฉด, Non-standard ๋นจ๊ฐ„๋”ฑ์ง€๊ฐ€ ๋ถ™์–ด์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์šฉ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์กฐ์‹ฌํ•ด์•ผ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

.Border{  
  position: relative;
  box-sizing: border-box;
  background-clip: padding-box;

  &:before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 3.5rem;
    backdrop-filter: blur(21px);
    padding: 3px;
    background: linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0)),
      radial-gradient(farthest-corner at 0% 100%, rgba(255, 255, 255, 0) 0%, rgba(104, 121, 251, 0.25) 100%),
      linear-gradient(to bottom right, rgba(255, 255, 255, 0.5), rgba(104, 121, 251, 0.3), rgba(255, 255, 255, 0.5));
    -webkit-mask:
      linear-gradient(#fff 0 0) content-box,
      linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
	  }
  }

::before ๋Š” ์š”์†Œ ์•ž์— ๊ฐ€์ƒ ์š”์†Œ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š”๋ฐ, ์ฃผ๋กœ ๊ธฐํ˜ธ๋‚˜ ๋„ํ˜• ๋“ฑ ๊พธ๋ฏธ๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

๋‚˜๋Š” ๋ฐฐ์น˜๊ฐ€ ๋” ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™์•„์„œ ์šฐ์„  ::before ๋นผ๊ณ  ๋งŒ๋“ค์–ด ์ฃผ๊ฒ ๋‹ค. ๋ฐฐ๊ฒฝ์ƒ‰๊นŒ์ง€ ๋„ฃ์–ด์ฃผ๊ฒ ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด, ์ด๋•Œ๊นŒ์ง€์™€๋Š” ๋‹ค๋ฅด๊ฒŒ border-content ๋ฐ•์Šค๋ฅผ ์ด์šฉํ•œ๊ฒƒ์ด ์•„๋‹Œ, padding-content๋กœ ๊ตฌ๋ถ„์ง“๋Š” ๊ฒƒ์ด ๋ณด์ธ๋‹ค. border๋กœ ํ•˜๋‹ˆ ๊ทธ๋ผ๋ฐ์ด์…˜ ํ…Œ๋‘๋ฆฌ๊ฐ€ ๋‹ค ๋‚˜์˜ค์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ padding์œผ๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค.

.Box {
  border-radius: 3.5rem;

  box-sizing: border-box;
  background-clip: padding-box;

  padding: 3px;
  background: linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0)),
    radial-gradient(farthest-corner at 0% 100%, rgba(255, 255, 255, 0) 0%, rgba(104, 121, 251, 0.25) 100%),
    linear-gradient(to bottom right, rgba(255, 255, 255, 0.5), rgba(104, 121, 251, 0.3), rgba(255, 255, 255, 0.5));
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0),
    radial-gradient(farthest-corner at 0 0, rgba(104, 121, 251, 0.4) 0%, rgba(255, 255, 255, 0) 80%);
  -webkit-mask-composite: xor;
  mask-composite: exclude
}

4. blur

์ด์ œ ์ง„์งœ ๋งˆ์ง€๋ง‰์œผ๋กœ ์—ฌ๊ธฐ์— blur์ฒ˜๋ฆฌ๊นŒ์ง€ ํ•ด์ฃผ๊ฒ ๋‹ค.

์œ„์˜ ์ฝ”๋“œ์—์„œ ๊ทธ๋ƒฅ ์•„๋ž˜ ํ•œ ์ค„์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์„ ๋งŒ ์—ฐํ•ด์ง€๊ณ  ๋’ท ๋ฐฐ๊ฒฝ์ด ๋ธ”๋Ÿฌ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์ง€๋Š” ์•Š์•˜๋‹ค.

  backdrop-filter: blur(5px);

๋ธ”๋Ÿฌ๋ถ€๋ถ„์„ ๋”ฐ๋กœ ๋นผ๋ฉด ๋ธ”๋Ÿฌ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ, border-radius๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ƒ๋‹จ์—์„œ overflow: hidden์„ ์ฃผ์—ˆ๋‹ค.


์ตœ์ข…์ ์œผ๋กœ ์™„์„ฑ๋œ ์ฝ”๋“œ๋Š”!

์›๋ž˜ React, Styled-component์ธ๋ฐ ํ•ด๋‹น ๋ถ€๋ถ„๋งŒ ๋บ๋‹ค.

//html
<Front>
	  <Blur />
	  <Border />
</Front>

//css
.Front {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 3.5rem;
  overflow: hidden;
  transform: rotate(-0.157deg);
}

.Border {
  width: 100%;
  height: 100%;
  position: absolute;

  border-radius: 3.5rem;

  box-sizing: border-box;
  background-clip: padding-box;

  padding: 3px;
  background-image: linear-gradient(to bottom right, rgba(104, 121, 251, 0.6), rgba(104, 121, 251, 0)),
    radial-gradient(farthest-corner at 0% 100%, rgba(255, 255, 255, 0) 0%, rgba(104, 121, 251, 0.25) 100%),
    linear-gradient(to bottom right, rgba(255, 255, 255, 0.5), rgba(104, 121, 251, 0.3), rgba(255, 255, 255, 0.5));
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0),
    radial-gradient(farthest-corner at 0 0, rgba(104, 121, 251, 0.4) 0%, rgba(255, 255, 255, 0) 80%);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.Blur {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(5px);
}

์™„์„ฑ์ด๋‹ค! ๐ŸŽ‰
๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ ์ด์ œ ์ปดํฌ๋„ŒํŠธ state๋ณ„ ์ƒ‰์ƒ ๋ณ€ํ™”๋ž‘โ€ฆ. ์ด๊ฒƒ์ €๊ฒƒ ๋‚จ์•˜๋‹ค..


์ฐธ๊ณ ์ž๋ฃŒ

https://developer.mozilla.org/ko/docs/Web/CSS/CSS_images/Using_CSS_gradients
https://codingeverybody.kr/css-background-clip-์†์„ฑ/
https://cheesechaos.tistory.com/45
https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-composite

profile
์•ˆ๋…•ํ•˜์„ธ์š”๐Ÿ˜Š ๊ฐœ๋ฐœ ๋„์ค‘ ์ƒ๊ธฐ๋Š” ๊ถ๊ธˆ์ฆ์„ ํƒ๊ตฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ ์ž…๋‹ˆ๋‹ค

7๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2024๋…„ 8์›” 6์ผ

ํ”„์—”๋‹ค์šด ์„ฌ์„ธํ•จ์ด ๋А๊ปด์ง€๋Š” ๊ธ€์ด๋„ค์š”!!
์ž˜ ๋ณด๊ณ  ๊ฐ‘๋‹ˆ๋‹ค :)

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2024๋…„ 8์›” 8์ผ

CSS ๊ฐ€ ์ œ์ผ ์–ด๋ ต๋‹ค๋Š” ๋ง์ด ๊ณผ์–ธ์ด ์•„๋‹ˆ๊ตฐ์š” ... ใ…Ž.ใ…Ž ๋ฐฐ์šฐ๊ณ  ๊ฐ‘๋‹ˆ๋‹น
๋งŽ์ด ์˜ฌ๋ ค์ฃผ์„ธ์š” >.<

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2024๋…„ 8์›” 12์ผ

์˜๊ฐ ์ž˜ ๋ฐ›๊ณ  ๊ฐ‘๋‹ˆ๋‹ค !

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2024๋…„ 8์›” 14์ผ

css๊ฐ€ ์ ค ์–ด๋ ค์›Œ ...

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ