HTML+CSS:炫酷按钮组件

效果演示

23-炫酷按钮组件.gif

实现了一个带有发光效果的按钮。按钮在悬停或激活时会产生发光效果,并且按钮上的文字也会随之移动。

Code

<main id="app"><button><span class="text">若冰说CSS</span><span class="shimmer"></span></button></main>
:root {--glow-hue: 222deg;--shadow-hue: 180deg;--spring-easing: linear(0,0.002,0.01 0.9%,0.038 1.8%,0.156,0.312 5.8%,0.789 11.1%,1.015 14.2%,1.096,1.157,1.199,1.224 20.3%,1.231,1.231,1.226,1.214 24.6%,1.176 26.9%,1.057 32.6%,1.007 35.5%,0.984,0.968,0.956,0.949 42%,0.946 44.1%,0.95 46.5%,0.998 57.2%,1.007,1.011 63.3%,1.012 68.3%,0.998 84%,1);--spring-duration: 1.33s;
}
@property --shimmer {syntax: "<angle>";inherits: false;initial-value: 33deg;
}@keyframes shimmer {0% {--shimmer: 0deg;}100% {--shimmer: 360deg;}
}@keyframes shine {0% {opacity: 0;}15% {opacity: 1;}55% {opacity: 1;}100% {opacity: 0;}
}
@keyframes text {0% {background-position: 100% center;}100% {background-position: -100% center;}
}button {color: var(--bg);font-weight: 600;/*     background-image: linear-gradient(90deg, #fcecfe, #fbf6e7, #e6fcf5); */background-image: linear-gradient(315deg,#ffc4ec -10%,#efdbfd 50%,#ffedd6 110%);padding: 0.8em 1.4em;position: relative;isolation: isolate;box-shadow: 0 2px 3px 1px hsl(var(--glow-hue) 50% 20% / 50%),inset 0 -10px 20px -10px hsla(var(--shadow-hue), 10%, 90%, 95%);border-radius: 0.66em;scale: 1;transition: all var(--spring-duration) var(--spring-easing);
}button:hover:not(:active),
button.active {transition-duration: calc(var(--spring-duration) * 0.5);scale: 1.2;box-shadow: 0 4px 8px -2px hsl(var(--glow-hue) 50% 20% / 50%),inset 0 0 0 transparent;
}
button:active {scale: 1.1;transition-duration: calc(var(--spring-duration) * 0.5);
}.shimmer {position: absolute;inset: -40px;border-radius: inherit;mask-image: conic-gradient(from var(--shimmer, 0deg),transparent 0%,transparent 10%,black 36%,black 45%,transparent 50%,transparent 60%,black 85%,black 95%,transparent 100%);mask-size: cover;mix-blend-mode: plus-lighter;animation: shimmer 1s linear infinite both;
}
button:hover .shimmer::before,
button:hover .shimmer::after,
button.active .shimmer::before,
button.active .shimmer::after {opacity: 1;animation: shine 1.2s ease-in 1 forwards;
}
.shimmer::before,
.shimmer::after {transition: all 0.5s ease;opacity: 0;content: "";border-radius: inherit;position: absolute;mix-blend-mode: color;inset: 40px;pointer-events: none;
}
.shimmer::before {box-shadow: 0 0 3px 2px hsl(var(--glow-hue) 20% 95%),0 0 7px 4px hsl(var(--glow-hue) 20% 80%),0 0 13px 4px hsl(var(--glow-hue) 50% 70%),0 0 25px 5px hsl(var(--glow-hue) 100% 70%);z-index: -1;
}.shimmer::after {box-shadow: inset 0 0 0 1px hsl(var(--glow-hue) 70% 95%),inset 0 0 2px 1px hsl(var(--glow-hue) 100% 80%),inset 0 0 5px 2px hsl(var(--glow-hue) 100% 70%);z-index: 2;
}button .text {color: black;font-weight: bold;background-clip: text;background-color: var(--bg);background-image: linear-gradient(120deg,transparent,hsla(var(--glow-hue), 100%, 80%, 0.66) 40%,hsla(var(--glow-hue), 100%, 90%, 0.9) 50%,transparent 52%);background-repeat: no-repeat;background-size: 300% 300%;background-position: center 200%;
}button:hover .text,
button.active .text {animation: text 0.66s ease-in 1 both;
}body,
html {display: flex;height: 100vh;padding: 0;/*     background: radial-gradient(circle at 50% 0%, #9588c7 15%, #c79ed5 75%); */background-image: radial-gradient(circle at 50% 0%,rgb(67, 54, 74) 16.4%,rgb(47, 48, 67) 68.2%,rgb(27, 23, 36) 99.1%);
}
main#app {height: 100vh;width: 100vw;display: flex;align-items: center;justify-content: center;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/647607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sentinel-1 扩展时序注释数据集 (ETAD)的查询和下载

概述 Sentinel-1的扩展计时注释数据集&#xff08;ETAD&#xff09;是ESA&#xff08;DLR作为承包商&#xff09;开发的新辅助产品&#xff0c;为用户提供校正&#xff0c;将Sentinel-1 SLC图像的几何精度提高到厘米级别。该产品包含分析就绪层&#xff0c;用于消除大气路径延…

用大模型训练实体机器人,谷歌推出机器人代理模型

谷歌DeepMind的研究人员推出了一款&#xff0c;通过视觉语言模型进行场景理解&#xff0c;并使用大语言模型来发出指令控制实体机器人的模型——AutoRT AutoRT可有效地推理自主权和安全性&#xff0c;并扩大实体机器人学习的数据收集规模。在实验中&#xff0c;AutoRT指导超过…

JVM问题排查手册

三万字长文&#xff1a;JVM内存问题排查Cookbook 一、Heap快照 # jmap命令保存整个Java堆&#xff08;在你dump的时间不是事故发生点的时候尤其推荐&#xff09; jmap -dump:formatb,fileheap.bin <pid> # jmap命令只保存Java堆中的存活对象, 包含live选项&#xff0c;…

CentOS7服务器的安装配置连接客户端Xshell进行使用

目录 一. CentOS7的安装【在虚拟机中】 二. 查看设置IP地址 三. 安装并连接客户端软件Xshell 3.1 安装Xshell 3.2 xshell连接centos7服务器 四. 切换国内源 一. CentOS7的安装【在虚拟机中】 首先创建一个虚拟机&#xff0c; 这个没什么好说的&#xff0c;基本上都是下…

OSPF协议解析及相关技术探索(C/C++代码实现)

OSPF&#xff08;开放最短路径优先&#xff09;是一种用于自治系统&#xff08;AS&#xff09;内部的路由协议&#xff0c;它是基于链路状态算法的。OSPF的设计目的是为了提供一种可扩展、快速收敛和高效的路由解决方案。 OSPF概念和特点 概念 自治系统&#xff08;AS&#…

【AIGC】Diffusers:AutoPipeline自动化扩散生图管道

前言 &#x1f917; 扩散器能够完成许多不同的任务&#xff0c;并且您通常可以将相同的预训练权重用于多个任务&#xff0c;例如文本到图像、图像到图像和修复。但是&#xff0c;如果您不熟悉库和扩散模型&#xff0c;可能很难知道将哪个管道用于任务。例如&#xff0c;如果您…

解决WinForms跨线程操作控件的问题

解决WinForms跨线程操作控件的问题 介绍 在构建Windows窗体应用程序时&#xff0c;我们通常会遇到需要从非UI线程更新UI元素的场景。由于WinForms控件并不是线程安全的&#xff0c;直接这样做会抛出一个异常&#xff1a;“控件’control name’是从其他线程创建的&#xff0c;…

大模型学习与实践笔记(十三)

将训练好的模型权重上传到 OpenXLab 方式1&#xff1a; 先将Adapter 模型权重通过scp 传到本地&#xff0c;然后网页上传 步骤1. scp 到本地 命令为&#xff1a; scp -o StrictHostKeyCheckingno -r -P *** rootssh.intern-ai.org.cn:/root/data/ e/opencv/ 步骤2&#…

Verilog语法——移位运算符“>>“和“>>>“的细节

Verilog中的移位运算符 “>>” 不区分无符号和有符号移位&#xff0c;即对有符号和无符号数进行">>"操作结果一致。 对有符号数使用">>“进行右移&#xff0c;高位补"0”;对无符号数使用">>“进行右移&#xff0c;高位补&q…

Vp9解码方式概述 -- Parsing Process

Vp9解码方式概述 – Parsing Process 本文是对vp9协议第9章&#xff0c;解析字符串函数的一个梳理&#xff0c;主要对几种解析类型&#xff08;Type&#xff09;的流程进行梳理 目录 Vp9解码方式概述 -- Parsing Process1. 如何解码视频&#xff1f;2. f(n)3. 布尔解码器Boole…

Spring5学习笔记

Spring5 框架概述IOC(Inversion Of Control)IOC基本过程:IOC接口(BeanFactory)IOC接口实现类IOC操作Bean管理一、什么是Bean管理?二、什么是DI?三、Bean管理的两种实现方式1.基于XML配置文件方式实现基于XML方式创建对象基于XML方式注入属性常规属性注入特殊属性值的注入…

pcl+vtk(十四)vtkCamera相机简单介绍

一、vtkCamera相机 人眼相当于三维场景下的相机&#xff0c; VTK是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面&#xff0c;如屏幕、图像等。 相机位置&#xff1a;即相机所在的位置&#xff0c;用方法vtkCamera::SetPosition()设置。 相…

【C语言刷题系列】水仙花数的打印及进阶

1.水仙花数问题 水仙花数&#xff08;Narcissistic number&#xff09;也被称为超完全数字不变数&#xff08;pluperfect digital invariant, PPDI&#xff09;、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数&#xff08;Armstrong number&#xff09; 水仙花数是指一个 3 位数&a…

x-cmd pkg | sqlite3 - 轻量级的嵌入式关系型数据库

目录 简介首次用户 技术特点竞品和相关产品sqlite 与 x-cmd进一步阅读 简介 sqlite3 是一个轻量级的文件数据库&#xff0c;体积非常小&#xff0c;提供简单优雅而功能强大的 sql 化的数据查询。 通常情况下&#xff0c;sqlite 指的是 SQLite 2.x 版本&#xff0c;而 sqlite3 …

【K8S 云原生】K8S的安全机制

目录 一、K8S安全机制概述 1、概念 2、请求apiserver资源的三个步骤&#xff1a; 一、认证&#xff1a;Anthentcation 1、认证的方式&#xff1a; 1、HTTP TOKEN&#xff1a; 2、http base&#xff1a; 3、http证书&#xff1a; 2、认证的访问类型&#xff1a; 3、签发…

网络安全B模块(笔记详解)- Linux操作系统渗透提权

1. 使用渗透机对服务器信息收集,并将服务器中SSH服务端口号作为flag提交; 2. 使用渗透机对服务器信息收集,并将服务器中主机名称作为flag提交; 3. 使用渗透机对服务器信息收集,并将服务器中系统内核版本作为flag提交; 4. 使用渗透机对服务器管理员提权,并将服务器中r…

C# 使用AutoMapper实现类映射

写在前面 AutoMapper是一个用于.NET中简化类之间的映射的扩展库&#xff1b;可以在执行对象映射的过程&#xff0c;省去的繁琐转换代码&#xff0c;实现了对DTO的快速装配&#xff0c;有效的减少了代码量。 通过NuGet安装&#xff0c;AutoMapper&#xff0c; 由于本例用到了D…

【WPF.NET开发】WPF中的双向功能

本文内容 FlowDirectionFlowDocumentSpan 元素非文本元素的 FlowDirection数字替换 与其他任何开发平台不同&#xff0c;WPF 具有许多支持双向内容快速开发的功能&#xff0c;例如&#xff0c;同一文档中混合了从左到右和从右到左的数据。 同时&#xff0c;WPF 也为需要双向功…

中移(苏州)软件技术有限公司面试问题与解答(4)—— virtio所创建的设备2

接前一篇文章&#xff1a;中移&#xff08;苏州&#xff09;软件技术有限公司面试问题与解答&#xff08;4&#xff09;—— virtio所创建的设备1 在上一篇文章中&#xff0c;对于面试所提出的问题“virtio会创建哪些设备&#xff1f;”&#xff0c;有了初步答案&#xff0c;即…

单调性的应用

1单调性 应用场景&#xff1a;常应用于双指针的进一步优化问题中含义&#xff1a;针对指针 i 1 > i i1>i i1>i一定有 j 1 > j j1>j j1>j或者 j 1 < j j1<j j1<j这样我们就可以利用该性质对算法进行进一步优化&#xff0c;避免一些不必要的遍历…