1<button class="ai-btn">
2 <img
3 class="ai-btn__icon"
4 src="search_spark.png"
5 alt="AI search spark"
6 />
7 <span class="ai-btn__label">AI Mode</span>
8</button>
1@property --angle {
2 syntax: '<angle>';
3 initial-value: 0deg;
4 inherits: false;
5}
6
7@keyframes spin-border {
8 to { --angle: 360deg; }
9}
10
11.ai-btn {
12 display: inline-flex;
13 align-items: center;
14 gap: 8px;
15 height: 41px;
16 padding: 0 18px;
17 border-radius: 60px;
18 border: 2px solid transparent;
19 cursor: pointer;
20 background-image:
21 linear-gradient(#F6F6F6, #F6F6F6),
22 linear-gradient(transparent, transparent);
23 background-origin: padding-box, border-box;
24 background-clip: padding-box, border-box;
25 animation: none;
26}
27
28.ai-btn:hover {
29 background-image:
30 linear-gradient(#fff, #fff),
31 conic-gradient(
32 from var(--angle),
33 transparent 0deg,
34 transparent 40deg,
35 #4285F4 75deg, /* blue */
36 #4285F4 195deg, /* blue */
37 #EA4335 225deg, /* red */
38 #FBBC04 248deg, /* yellow */
39 #34A853 268deg, /* green */
40 transparent 305deg,
41 transparent 360deg
42 );
43 background-origin: padding-box, border-box;
44 background-clip: padding-box, border-box;
45 animation: spin-border 2.4s linear infinite;
46 box-shadow:
47 0 2px 10px rgba(0,0,0,.10),
48 0 4px 20px rgba(66,133,244,.18);
49}
50
51.ai-btn__icon {
52 width: 20px;
53 height: 20px;
54 display: block;
55}
56
57.ai-btn__label {
58 font-size: 12px;
59 font-weight: 400;
60 color: #000;
61}
1// No JavaScript required.
2// The animation is driven entirely by CSS
3// using @property and conic-gradient.