Как сделать glass effect в css
Здравстуйте, помогите пожалуйста. Мне нужно сделать новый эффект из фигмы в моем проекте (html css), как это сделать, я не нашел информации в интернете, мне нужна именно такая кнопка (генераторы которые есть сейчас не подошли).
Мне нужна обычная темная кнопка на темном фоне, с белым border (border не везде)
Ответы (2 шт):
Если вам надо быстро реализовать, то проще всего будет срезать две части кнопки которые не доходять до конца.

И задать их через псевдоклассы. СSS код кнопки будет приблизительно такой
body {
background: #000;
margin: 0;
}
button {
padding: 0;
border: 0;
background: transparent;
color: #fff;
box-sizing: border-box;
}
.decor-btn {
margin: 20px;
position: relative;
padding: 10px 50px;
border-top: 1px solid #fff;
border-bottom: 1px solid #fff;
border-radius: 30px;
}
.decor-btn:before,
.decor-btn:after {
content: "";
position: absolute;
top: -1px;
width: 50px;
height: 37px;
z-index: 1;
}
.decor-btn:before {
left: 0;
background-image: url("1.webp");
background-color: rgba(255, 0, 0, 0.3);
}
.decor-btn:after {
right: 0;
background-image: url("1.webp");
background-color: rgba(255, 0, 0, 0.3);
}
<button class="decor-btn">First button</button>
Показал красным куда должны стать изображений, ну и там ещё закругления добавить, внутреннеи тени, правильный шрифт и тд.
Ну или можно искать другие варианты решения... Через канонические градиенты, блур, смещения и тд... Хотя если кнопки не прилеплены к экрану, то использовать данный метод сомнительная радость.
Вот вариант с внешней обёрткой в виде div и псевдоэлементами с background: radial-gradient.
Обратите внимание на margin: 1px; у button. Без него будут видны "артефакты" от border.
body{
background-color: black;
}
.button{
font-size: 16px;
color: aliceblue;
border-radius: 50px;
padding: 7px 32px 7px 32px;
background-color: black;
border: 1px solid aliceblue;
box-sizing: border-box;
margin: 1px;
}
.border_glass{
position: relative;
overflow: hidden;
width: max-content;
height: max-content;
border-radius: 50px;
}
.border_glass:before{
content: '';
position: absolute;
top: 5px;
left: -5px;
width: 35px;
height: 35px;
background: radial-gradient(closest-side, black 60%, transparent);
}
.border_glass:after{
content: '';
position: absolute;
top: -5px;
right: -5px;
width: 35px;
height: 35px;
background: radial-gradient(closest-side, black 60%, transparent);
}
<div class="border_glass">
<button class="button">КРАСИВАЯ КНОПКА</button>
</div>
