@duskmoon-dev/css-art 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,207 @@
1
+ @layer css-art {
2
+ @keyframes art-color-spin-spin {
3
+ 0%,
4
+ 1% {
5
+ transform: translateX(-50%) translateY(calc(var(--art-color-spin-size) * 0.026))
6
+ rotateY(0deg) scale(1.05);
7
+ }
8
+ 99%,
9
+ 100% {
10
+ transform: translateX(-50%) translateY(calc(var(--art-color-spin-size) * 0.026))
11
+ rotateY(360deg) scale(1.05);
12
+ }
13
+ }
14
+
15
+ .art-color-spin {
16
+ --art-color-spin-size: 770px;
17
+ --art-color-spin-color1: #ffd700;
18
+ --art-color-spin-color2: #20a7db;
19
+ --art-color-spin-color3: #8fce00;
20
+ --art-color-spin-color4: #ff0000;
21
+
22
+ position: relative;
23
+ width: var(--art-color-spin-size);
24
+ height: calc(var(--art-color-spin-size) * 0.26);
25
+ background: repeating-linear-gradient(
26
+ -45deg,
27
+ #000,
28
+ #000 5px,
29
+ #111 5px,
30
+ #111 10px
31
+ );
32
+ perspective: calc(var(--art-color-spin-size) * 1.039);
33
+ font-family: "Google Sans", sans-serif;
34
+ font-weight: 440;
35
+ overflow: visible;
36
+ }
37
+
38
+ .art-color-spin * {
39
+ box-sizing: border-box;
40
+ }
41
+
42
+ /* Decorative "c" letter */
43
+ .art-color-spin::before {
44
+ content: "c";
45
+ font-size: calc(var(--art-color-spin-size) * 0.461);
46
+ color: #eee;
47
+ position: absolute;
48
+ top: calc(var(--art-color-spin-size) * -0.169);
49
+ left: 0;
50
+ text-indent: calc(var(--art-color-spin-size) * -0.026);
51
+ line-height: calc(var(--art-color-spin-size) * 0.519);
52
+ z-index: 2;
53
+ -webkit-box-reflect: below calc(var(--art-color-spin-size) * -0.169)
54
+ linear-gradient(transparent, rgb(255 255 255 / 0.06));
55
+ }
56
+
57
+ /* Decorative "r" letter */
58
+ .art-color-spin::after {
59
+ content: "r";
60
+ font-size: calc(var(--art-color-spin-size) * 0.461);
61
+ color: #eee;
62
+ position: absolute;
63
+ top: calc(var(--art-color-spin-size) * -0.169);
64
+ right: calc(var(--art-color-spin-size) * 0.039);
65
+ line-height: calc(var(--art-color-spin-size) * 0.519);
66
+ z-index: 2;
67
+ -webkit-box-reflect: below calc(var(--art-color-spin-size) * -0.169)
68
+ linear-gradient(transparent, rgb(255 255 255 / 0.06));
69
+ }
70
+
71
+ /* 3D spinner container */
72
+ .art-color-spin > ul {
73
+ width: 0;
74
+ height: calc(var(--art-color-spin-size) * 0.195);
75
+ display: block;
76
+ left: 50%;
77
+ position: relative;
78
+ transform-style: preserve-3d;
79
+ transform-origin: center center;
80
+ z-index: 3;
81
+ margin: 0;
82
+ padding: 0;
83
+ list-style: none;
84
+ animation: art-color-spin-spin 11s linear infinite alternate-reverse;
85
+ }
86
+
87
+ .art-color-spin > ul * {
88
+ transform-style: preserve-3d;
89
+ }
90
+
91
+ /* White vertical bars (axis indicators) */
92
+ .art-color-spin > ul::before,
93
+ .art-color-spin > ul::after {
94
+ content: "";
95
+ display: block;
96
+ position: absolute;
97
+ width: calc(var(--art-color-spin-size) * 0.052);
98
+ height: calc(var(--art-color-spin-size) * 0.286);
99
+ border-radius: calc(var(--art-color-spin-size) * 0.026);
100
+ top: calc(var(--art-color-spin-size) * -0.039);
101
+ left: calc(var(--art-color-spin-size) * -0.026);
102
+ background: #fff;
103
+ }
104
+
105
+ .art-color-spin > ul::before {
106
+ background: #eee;
107
+ transform: rotateY(-90deg);
108
+ }
109
+
110
+ /* Colored rings */
111
+ .art-color-spin > ul > li {
112
+ display: block;
113
+ width: calc(var(--art-color-spin-size) * 0.234);
114
+ height: calc(var(--art-color-spin-size) * 0.234);
115
+ border: solid calc(var(--art-color-spin-size) * 0.032) #fff;
116
+ border-radius: 50%;
117
+ top: calc(var(--art-color-spin-size) * -0.013);
118
+ left: 0;
119
+ position: absolute;
120
+ transform: rotateY(calc(var(--i) * -90deg)) translateZ(0px)
121
+ translateX(calc(var(--art-color-spin-size) * 0.052));
122
+ transform-origin: top left;
123
+ -webkit-box-reflect: below 2px linear-gradient(transparent, rgb(255 255 255 / 0.1));
124
+ margin: 0;
125
+ padding: 0;
126
+ list-style: none;
127
+ }
128
+
129
+ /* Inner colored circles (mix-blend-mode creates glow effect) */
130
+ .art-color-spin > ul > li::before,
131
+ .art-color-spin > ul > li::after {
132
+ content: "";
133
+ width: calc(var(--art-color-spin-size) * 0.13);
134
+ height: calc(var(--art-color-spin-size) * 0.13);
135
+ display: block;
136
+ opacity: 0.75;
137
+ border-radius: 50%;
138
+ position: absolute;
139
+ left: 50%;
140
+ top: 50%;
141
+ mix-blend-mode: color-burn;
142
+ }
143
+
144
+ .art-color-spin > ul > li::after {
145
+ transform: translate3d(-50%, -50%, 1px);
146
+ }
147
+
148
+ .art-color-spin > ul > li::before {
149
+ transform: translate3d(-50%, -50%, -1px);
150
+ }
151
+
152
+ /* Ring 1: Gold */
153
+ .art-color-spin > ul > li:nth-child(1) {
154
+ outline: solid 1px var(--art-color-spin-color1);
155
+ outline-offset: 1px;
156
+ }
157
+ .art-color-spin > ul > li:nth-child(1)::after {
158
+ background: var(--art-color-spin-color1);
159
+ }
160
+ .art-color-spin > ul > li:nth-child(1)::before {
161
+ background: color-mix(in hsl, var(--art-color-spin-color1), white 30%);
162
+ }
163
+
164
+ /* Ring 2: Blue */
165
+ .art-color-spin > ul > li:nth-child(2) {
166
+ outline: solid 1px var(--art-color-spin-color2);
167
+ outline-offset: 1px;
168
+ }
169
+ .art-color-spin > ul > li:nth-child(2)::after {
170
+ background: var(--art-color-spin-color2);
171
+ }
172
+ .art-color-spin > ul > li:nth-child(2)::before {
173
+ background: color-mix(in hsl, var(--art-color-spin-color2), white 30%);
174
+ }
175
+
176
+ /* Ring 3: Green */
177
+ .art-color-spin > ul > li:nth-child(3) {
178
+ outline: solid 1px var(--art-color-spin-color3);
179
+ outline-offset: 1px;
180
+ }
181
+ .art-color-spin > ul > li:nth-child(3)::after {
182
+ background: var(--art-color-spin-color3);
183
+ }
184
+ .art-color-spin > ul > li:nth-child(3)::before {
185
+ background: color-mix(in hsl, var(--art-color-spin-color3), white 30%);
186
+ }
187
+
188
+ /* Ring 4: Red */
189
+ .art-color-spin > ul > li:nth-child(4) {
190
+ outline: solid 1px var(--art-color-spin-color4);
191
+ outline-offset: 1px;
192
+ }
193
+ .art-color-spin > ul > li:nth-child(4)::after {
194
+ background: var(--art-color-spin-color4);
195
+ }
196
+ .art-color-spin > ul > li:nth-child(4)::before {
197
+ background: color-mix(in hsl, var(--art-color-spin-color4), white 30%);
198
+ }
199
+
200
+ .art-color-spin-sm {
201
+ --art-color-spin-size: 385px;
202
+ }
203
+
204
+ .art-color-spin-lg {
205
+ --art-color-spin-size: 1000px;
206
+ }
207
+ }