appvoid commited on
Commit
fe651e9
·
verified ·
1 Parent(s): 18f6912

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +136 -78
README.md CHANGED
@@ -68,19 +68,23 @@ body {
68
 
69
  /* Logo area */
70
  .logo-stage {
 
 
 
71
  display: flex;
72
  align-items: center;
73
  justify-content: center;
 
74
  min-height: 360px;
75
  margin: 0 auto 1.5rem;
76
  overflow: visible;
77
  cursor: pointer;
 
 
 
 
78
  }
79
 
80
- /*
81
- The wrapper owns the smooth shrink/rotation transition.
82
- This avoids conflicts with the continuously animated vortex rings.
83
- */
84
  .logo-vortex {
85
  position: relative;
86
  display: grid;
@@ -88,51 +92,76 @@ body {
88
  width: fit-content;
89
  margin: 0 auto;
90
 
91
- border-radius: 0.5rem;
92
  outline: 0 solid transparent;
93
  outline-offset: 0;
94
 
95
  transform:
96
- perspective(900px)
97
  translateZ(0)
98
  scale(1)
99
- rotate(0deg)
100
- rotateX(0deg);
101
 
102
  transform-origin: center;
103
  will-change: transform, filter, border-radius, box-shadow, outline-offset;
104
 
 
 
 
 
105
  transition:
106
- transform 760ms cubic-bezier(0.16, 1, 0.3, 1) 760ms,
107
- filter 620ms ease 760ms,
108
- border-radius 620ms ease 760ms,
109
- box-shadow 620ms ease 760ms,
110
- outline 620ms ease 760ms,
111
- outline-offset 620ms ease 760ms;
112
  }
113
 
114
  .logo-vortex::before,
115
  .logo-vortex::after {
116
  content: "";
117
  position: absolute;
118
- inset: -22px;
119
- z-index: 0;
120
  pointer-events: none;
121
 
122
  border-radius: 50%;
123
- border: 2px solid rgba(255, 255, 255, 0);
124
  opacity: 0;
125
 
126
- transform: rotate(0deg) scale(0.82);
127
  transition:
128
- opacity 360ms ease,
129
- border-color 360ms ease,
130
- transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  }
132
 
133
  .logo-vortex::after {
134
- inset: -42px;
135
- border-style: dashed;
 
 
 
 
 
 
 
 
136
  }
137
 
138
  .logo-image {
@@ -146,100 +175,117 @@ body {
146
  margin: 0 auto;
147
  object-fit: contain;
148
 
149
- border-radius: 0.5rem;
150
 
151
  filter: contrast(1.15);
152
 
153
- transform: translateZ(0);
 
 
 
 
154
  transform-origin: center;
 
155
 
156
  transition:
157
- filter 620ms ease,
158
- border-radius 620ms ease;
 
 
 
 
 
 
 
159
  }
160
 
161
  .logo-stage:hover .logo-vortex {
162
  border-radius: 50%;
163
- transition-delay: 0s;
 
164
 
165
  transform:
166
- perspective(900px)
167
  translateZ(0)
168
- scale(0.42)
169
- rotate(540deg)
170
- rotateX(18deg);
171
-
172
- outline: 2px solid rgba(255, 255, 255, 0.92);
173
- outline-offset: 18px;
174
 
175
  box-shadow:
176
  0 0 0 5px #000,
177
- 0 0 0 7px rgba(255, 255, 255, 0.96),
178
  0 0 0 15px #000,
179
- 0 0 0 17px rgba(255, 255, 255, 0.44),
180
- 0 0 38px 20px rgba(255, 255, 255, 0.34),
181
- 0 0 92px 34px rgba(255, 255, 255, 0.16);
 
 
182
  }
183
 
184
  .logo-stage:hover .logo-image {
185
  border-radius: 50%;
186
 
 
 
 
 
 
187
  filter:
188
  grayscale(100%)
189
- contrast(220%)
190
- brightness(18%)
191
- blur(8px)
192
  drop-shadow(0 0 5px #fff)
193
- drop-shadow(0 0 18px rgba(255, 255, 255, 0.8))
194
- drop-shadow(0 0 45px rgba(255, 255, 255, 0.45));
 
 
195
  }
196
 
197
  .logo-stage:hover .logo-vortex::before {
198
  opacity: 1;
199
- border-color: rgba(255, 255, 255, 0.95);
200
- animation: vortex-ring-forward 0.9s linear infinite;
 
 
 
 
 
201
  }
202
 
203
  .logo-stage:hover .logo-vortex::after {
204
  opacity: 0.72;
205
- border-color: rgba(255, 255, 255, 0.48);
206
- animation: vortex-ring-reverse 1.25s linear infinite;
207
- }
208
 
209
- @keyframes vortex-ring-forward {
210
- 0% {
211
- transform: rotate(0deg) scale(0.84);
212
- }
213
 
214
- 50% {
215
- transform: rotate(180deg) scale(1.08);
 
216
  }
217
 
218
- 100% {
219
- transform: rotate(360deg) scale(0.84);
220
  }
221
  }
222
 
223
- @keyframes vortex-ring-reverse {
224
- 0% {
225
- transform: rotate(360deg) scale(1.08);
226
- }
227
-
228
- 50% {
229
- transform: rotate(180deg) scale(0.9);
230
  }
231
 
232
- 100% {
233
- transform: rotate(0deg) scale(1.08);
234
  }
235
  }
236
 
237
- /* Benchmark remains centered and only scales slightly on hover. */
238
  .benchmark-image {
239
  display: block;
240
  position: static;
241
 
242
- width: min(78%, 760px);
243
  height: auto;
244
  max-width: 100%;
245
  margin: 2.5rem auto;
@@ -248,14 +294,24 @@ body {
248
  border-radius: 0.5rem;
249
  outline: none;
250
 
 
 
 
 
 
251
  filter: none !important;
252
  transform: scale(1) !important;
253
  animation: none !important;
254
  box-shadow: none !important;
255
 
 
 
 
 
256
  transition:
257
- transform 320ms cubic-bezier(0.16, 1, 0.3, 1),
258
- box-shadow 320ms ease !important;
 
259
  }
260
 
261
  .benchmark-image:hover {
@@ -264,9 +320,13 @@ body {
264
  outline-offset: 0;
265
 
266
  filter: none !important;
267
- transform: scale(1.045) !important;
 
268
  animation: none !important;
269
- box-shadow: 0 18px 55px rgba(255, 255, 255, 0.08) !important;
 
 
 
270
  }
271
 
272
  p,
@@ -326,14 +386,12 @@ table {
326
 
327
  @media (prefers-reduced-motion: reduce) {
328
  .logo-vortex,
329
- .logo-vortex:hover,
330
  .logo-vortex::before,
331
  .logo-vortex::after,
332
- .logo-vortex:hover::before,
333
- .logo-vortex:hover::after,
334
- .logo-image {
335
- animation: none;
336
- transition: none;
337
  }
338
  }
339
  </style>
 
68
 
69
  /* Logo area */
70
  .logo-stage {
71
+ position: relative;
72
+ isolation: isolate;
73
+
74
  display: flex;
75
  align-items: center;
76
  justify-content: center;
77
+
78
  min-height: 360px;
79
  margin: 0 auto 1.5rem;
80
  overflow: visible;
81
  cursor: pointer;
82
+
83
+ user-select: none;
84
+ -webkit-user-select: none;
85
+ -moz-user-select: none;
86
  }
87
 
 
 
 
 
88
  .logo-vortex {
89
  position: relative;
90
  display: grid;
 
92
  width: fit-content;
93
  margin: 0 auto;
94
 
95
+ border-radius: 0.75rem;
96
  outline: 0 solid transparent;
97
  outline-offset: 0;
98
 
99
  transform:
100
+ perspective(1000px)
101
  translateZ(0)
102
  scale(1)
103
+ rotate(0deg);
 
104
 
105
  transform-origin: center;
106
  will-change: transform, filter, border-radius, box-shadow, outline-offset;
107
 
108
+ /*
109
+ The return is delayed by the same duration as the entrance.
110
+ Leaving early therefore does not interrupt the collapse/spin.
111
+ */
112
  transition:
113
+ transform 720ms cubic-bezier(0.16, 1, 0.3, 1) 720ms,
114
+ filter 620ms ease 720ms,
115
+ border-radius 620ms ease 720ms,
116
+ box-shadow 620ms ease 720ms,
117
+ outline 620ms ease 720ms,
118
+ outline-offset 620ms ease 720ms;
119
  }
120
 
121
  .logo-vortex::before,
122
  .logo-vortex::after {
123
  content: "";
124
  position: absolute;
125
+ z-index: -1;
 
126
  pointer-events: none;
127
 
128
  border-radius: 50%;
 
129
  opacity: 0;
130
 
 
131
  transition:
132
+ opacity 320ms ease 720ms,
133
+ transform 720ms cubic-bezier(0.16, 1, 0.3, 1) 720ms,
134
+ filter 420ms ease 720ms;
135
+ }
136
+
137
+ .logo-vortex::before {
138
+ inset: -34px;
139
+
140
+ border:
141
+ 3px solid
142
+ rgba(255, 255, 255, 0.88);
143
+
144
+ border-left-color: rgba(255, 255, 255, 0.08);
145
+ border-right-color: rgba(255, 255, 255, 0.28);
146
+
147
+ filter:
148
+ drop-shadow(0 0 8px rgba(255, 255, 255, 0.75))
149
+ drop-shadow(0 0 22px rgba(255, 255, 255, 0.35));
150
+
151
+ transform: rotate(0deg) scale(0.78);
152
  }
153
 
154
  .logo-vortex::after {
155
+ inset: -60px;
156
+
157
+ border:
158
+ 2px dashed
159
+ rgba(255, 255, 255, 0.42);
160
+
161
+ filter:
162
+ drop-shadow(0 0 12px rgba(255, 255, 255, 0.28));
163
+
164
+ transform: rotate(0deg) scale(0.7);
165
  }
166
 
167
  .logo-image {
 
175
  margin: 0 auto;
176
  object-fit: contain;
177
 
178
+ border-radius: 0.75rem;
179
 
180
  filter: contrast(1.15);
181
 
182
+ transform:
183
+ translateZ(0)
184
+ scale(1)
185
+ rotate(0deg);
186
+
187
  transform-origin: center;
188
+ will-change: transform, filter, border-radius;
189
 
190
  transition:
191
+ transform 720ms cubic-bezier(0.16, 1, 0.3, 1) 720ms,
192
+ filter 620ms ease 720ms,
193
+ border-radius 620ms ease 720ms;
194
+
195
+ user-select: none;
196
+ -webkit-user-select: none;
197
+ -moz-user-select: none;
198
+ -webkit-user-drag: none;
199
+ pointer-events: none;
200
  }
201
 
202
  .logo-stage:hover .logo-vortex {
203
  border-radius: 50%;
204
+ outline: 2px solid rgba(255, 255, 255, 0.88);
205
+ outline-offset: 18px;
206
 
207
  transform:
208
+ perspective(1000px)
209
  translateZ(0)
210
+ scale(0.46)
211
+ rotate(540deg);
 
 
 
 
212
 
213
  box-shadow:
214
  0 0 0 5px #000,
215
+ 0 0 0 7px rgba(255, 255, 255, 0.92),
216
  0 0 0 15px #000,
217
+ 0 0 0 17px rgba(255, 255, 255, 0.36),
218
+ 0 0 42px 20px rgba(255, 255, 255, 0.28),
219
+ 0 0 110px 42px rgba(255, 255, 255, 0.13);
220
+
221
+ transition-delay: 0s;
222
  }
223
 
224
  .logo-stage:hover .logo-image {
225
  border-radius: 50%;
226
 
227
+ transform:
228
+ translateZ(0)
229
+ scale(0.92)
230
+ rotate(-180deg);
231
+
232
  filter:
233
  grayscale(100%)
234
+ contrast(245%)
235
+ brightness(15%)
236
+ blur(5px)
237
  drop-shadow(0 0 5px #fff)
238
+ drop-shadow(0 0 18px rgba(255, 255, 255, 0.72))
239
+ drop-shadow(0 0 42px rgba(255, 255, 255, 0.38));
240
+
241
+ transition-delay: 0s;
242
  }
243
 
244
  .logo-stage:hover .logo-vortex::before {
245
  opacity: 1;
246
+ transform: rotate(720deg) scale(1.08);
247
+ filter:
248
+ drop-shadow(0 0 10px rgba(255, 255, 255, 0.9))
249
+ drop-shadow(0 0 28px rgba(255, 255, 255, 0.48));
250
+
251
+ animation: singularity-ring 900ms linear 720ms infinite;
252
+ transition-delay: 0s;
253
  }
254
 
255
  .logo-stage:hover .logo-vortex::after {
256
  opacity: 0.72;
257
+ transform: rotate(-540deg) scale(1.18);
 
 
258
 
259
+ animation: singularity-ring-reverse 1.35s linear 720ms infinite;
260
+ transition-delay: 0s;
261
+ }
 
262
 
263
+ @keyframes singularity-ring {
264
+ from {
265
+ transform: rotate(720deg) scale(1.08);
266
  }
267
 
268
+ to {
269
+ transform: rotate(1080deg) scale(1.08);
270
  }
271
  }
272
 
273
+ @keyframes singularity-ring-reverse {
274
+ from {
275
+ transform: rotate(-540deg) scale(1.18);
 
 
 
 
276
  }
277
 
278
+ to {
279
+ transform: rotate(-900deg) scale(1.18);
280
  }
281
  }
282
 
283
+ /* Benchmark remains centered and enlarges substantially on hover. */
284
  .benchmark-image {
285
  display: block;
286
  position: static;
287
 
288
+ width: min(76%, 760px);
289
  height: auto;
290
  max-width: 100%;
291
  margin: 2.5rem auto;
 
294
  border-radius: 0.5rem;
295
  outline: none;
296
 
297
+ user-select: none;
298
+ -webkit-user-select: none;
299
+ -moz-user-select: none;
300
+ -webkit-user-drag: none;
301
+
302
  filter: none !important;
303
  transform: scale(1) !important;
304
  animation: none !important;
305
  box-shadow: none !important;
306
 
307
+ position: relative;
308
+ z-index: 1;
309
+ transform-origin: center;
310
+
311
  transition:
312
+ transform 420ms cubic-bezier(0.16, 1, 0.3, 1),
313
+ box-shadow 420ms ease,
314
+ filter 420ms ease !important;
315
  }
316
 
317
  .benchmark-image:hover {
 
320
  outline-offset: 0;
321
 
322
  filter: none !important;
323
+ z-index: 8;
324
+ transform: scale(1.28) !important;
325
  animation: none !important;
326
+ filter: contrast(1.05) brightness(1.03) !important;
327
+ box-shadow:
328
+ 0 24px 80px rgba(0, 0, 0, 0.55),
329
+ 0 0 48px rgba(255, 255, 255, 0.08) !important;
330
  }
331
 
332
  p,
 
386
 
387
  @media (prefers-reduced-motion: reduce) {
388
  .logo-vortex,
 
389
  .logo-vortex::before,
390
  .logo-vortex::after,
391
+ .logo-image,
392
+ .benchmark-image {
393
+ animation: none !important;
394
+ transition: none !important;
 
395
  }
396
  }
397
  </style>