class-studys 8.0.0 → 10.0.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.
package/ignite-ember.css CHANGED
@@ -189,3 +189,231 @@ button:focus-visible { outline: 2px solid rgba(201,112,58,.7); outline-offset: 2
189
189
  /* Games: dark tile fallback when a thumbnail cannot load */
190
190
  .ignite-thumb-fallback { display: grid !important; place-items: center !important; width: 100%; height: 100%; font-family: var(--font-round); font-weight: 700; font-size: 38px; color: var(--ember-soft);
191
191
  background: linear-gradient(160deg, #2a2421, #141113); }
192
+
193
+ /* ---------- AI, Account, Settings: same dark glass language ---------- */
194
+ :root { --ai-accent: #c9703a; }
195
+
196
+ .account-auth-auth-panel, .settings-section, .ai-settings-panel, .ai-model-panel, .ai-screen-panel {
197
+ background: linear-gradient(180deg, rgba(26,23,25,.82), rgba(14,12,14,.88)) !important;
198
+ border: 1px solid rgba(255,255,255,.08) !important; border-radius: 24px !important;
199
+ box-shadow: var(--glass-hi), 0 18px 50px rgba(0,0,0,.5);
200
+ -webkit-backdrop-filter: blur(26px) saturate(140%); backdrop-filter: blur(26px) saturate(140%);
201
+ }
202
+ .account-auth-auth-brand { color: var(--ember-soft) !important; letter-spacing: .12em; }
203
+ .account-auth-auth-brand svg, .account-auth-auth-dot { color: var(--ember); }
204
+
205
+ .settings-input, .settings-select, .account-auth-auth-form input, .ai-model-search, .ai-search-input {
206
+ background: rgba(255,255,255,.045) !important; border: 1px solid rgba(255,255,255,.1) !important; border-radius: 14px !important; color: var(--text) !important;
207
+ }
208
+ .settings-input:focus, .settings-select:focus, .account-auth-auth-form input:focus, .ai-model-search:focus, .ai-search-input:focus {
209
+ outline: none; border-color: rgba(201,112,58,.6) !important; box-shadow: 0 0 0 3px rgba(201,112,58,.14);
210
+ }
211
+
212
+ .account-auth-auth-primary, .account-btn, .settings-upgrade, .ai-send, .ai-edit-save {
213
+ background: linear-gradient(180deg, #b8653a, #8e4624) !important; color: #fff6ee !important;
214
+ border: 1px solid rgba(255,255,255,.14) !important; border-radius: 999px !important; font-weight: 600;
215
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 6px 18px rgba(0,0,0,.35);
216
+ }
217
+ .account-auth-auth-primary:disabled, .ai-send:disabled { opacity: .5; filter: saturate(.6); }
218
+ .account-auth-btn, .ai-edit-cancel {
219
+ background: var(--glass) !important; border: 1px solid rgba(255,255,255,.1) !important; border-radius: 999px !important; color: var(--text) !important;
220
+ }
221
+ .account-auth-auth-link { color: var(--ember-soft) !important; }
222
+
223
+ .ai-composer {
224
+ background: linear-gradient(180deg, rgba(30,26,28,.82), rgba(18,16,18,.88)) !important;
225
+ border: 1px solid rgba(255,255,255,.09) !important; border-radius: 26px !important;
226
+ box-shadow: var(--glass-hi), 0 14px 40px rgba(0,0,0,.5);
227
+ -webkit-backdrop-filter: blur(26px); backdrop-filter: blur(26px);
228
+ }
229
+ .ai-model-trigger, .ai-model-chip { border-radius: 999px !important; background: var(--glass) !important; border: 1px solid rgba(255,255,255,.1) !important; }
230
+ .ai-pick-tile, .ai-model-tile {
231
+ background: var(--glass) !important; border: 1px solid rgba(255,255,255,.08) !important; border-radius: 16px !important; transition: border-color .2s, transform .15s;
232
+ }
233
+ .ai-pick-tile:hover, .ai-model-tile:hover { border-color: rgba(201,112,58,.5) !important; transform: translateY(-1px); }
234
+ .ai-bubble { border-radius: 20px !important; }
235
+ .ai-rail { background: linear-gradient(180deg, rgba(20,18,20,.6), rgba(12,11,13,.7)) !important; border-right: 1px solid rgba(255,255,255,.06) !important; }
236
+ .ai-empty-title { font-family: var(--font-round); font-weight: 600; letter-spacing: -.02em; }
237
+ .settings-swatch.active, .settings-swatch[aria-pressed=true] { outline: 2px solid rgba(201,112,58,.8); outline-offset: 2px; }
238
+
239
+ /* =====================================================================
240
+ Ignite OS 2.0 — new canvas + home screen
241
+ ===================================================================== */
242
+ :root { --bg: #0a0708; --mesh-base: #0a0708; }
243
+ body { background: #0a0708; }
244
+
245
+ /* dot-grid canvas with a low ember glow (replaces the old aurora) */
246
+ ._v4jfozk, ._v4jfozk.mesh {
247
+ background:
248
+ radial-gradient(circle at 1px 1px, rgba(255,235,220,.07) 1px, transparent 0) 0 0 / 24px 24px,
249
+ radial-gradient(60% 38% at 50% -4%, rgba(201,112,58,.16), transparent 72%),
250
+ radial-gradient(40% 30% at 85% 100%, rgba(140,60,30,.10), transparent 70%),
251
+ #0a0708 !important;
252
+ }
253
+ ._v4jfozk::before, ._v4jfozk::after { display: none !important; }
254
+ ._rx2al0e { background: none !important; }
255
+
256
+ /* home layout */
257
+ .ignite-home { display: flex !important; flex-direction: column; align-items: center !important; justify-content: space-between; gap: 0; padding: clamp(22px, 5vh, 56px) clamp(16px, 4vw, 44px) 0 !important; overflow: hidden; }
258
+ .ignite-home:before { display: none !important; }
259
+ .ig-center { width: 100%; max-width: 680px; margin: auto; display: flex; flex-direction: column; align-items: center; gap: 22px; }
260
+
261
+ .ig-logo { text-align: center; }
262
+ .ig-wordmark {
263
+ margin: 0; font-family: var(--font-round); font-weight: 700; letter-spacing: -.045em; line-height: 1;
264
+ font-size: clamp(54px, 9vw, 84px); color: #f4ede8;
265
+ text-shadow: 0 0 38px rgba(201,112,58,.45), 0 0 90px rgba(201,112,58,.18);
266
+ }
267
+ .ig-tagline { margin: 10px 0 0; font-size: 14px; font-weight: 500; letter-spacing: .06em; color: var(--muted); }
268
+
269
+ .ig-search { position: relative; width: 100%; }
270
+ .ig-search .newtab-search-wrap { width: 100%; }
271
+ .ig-search ._25dnvc2 { height: 54px; padding-right: 60px !important; }
272
+ .ig-go {
273
+ position: absolute; right: 8px; top: 8px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; z-index: 3;
274
+ background: linear-gradient(180deg, #b8653a, #8e4624); border: 1px solid rgba(255,255,255,.14); color: #fff6ee;
275
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 6px 16px rgba(0,0,0,.4); transition: transform .15s, filter .2s;
276
+ }
277
+ .ig-go:hover { filter: brightness(1.12); } .ig-go:active { transform: scale(.92); } .ig-go:disabled { opacity: .5; }
278
+ .ig-ico { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
279
+
280
+ .ig-tiles { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px 14px; }
281
+ .ig-tile { display: flex; flex-direction: column; align-items: center; gap: 9px; background: none; border: 0; cursor: pointer; color: var(--text); padding: 0; }
282
+ .ig-tile:disabled { opacity: .5; cursor: default; }
283
+ .ig-tile-icon {
284
+ width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; color: var(--ember-soft);
285
+ background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
286
+ border: 1px solid rgba(255,255,255,.08); box-shadow: var(--glass-hi), 0 8px 18px rgba(0,0,0,.35);
287
+ transition: transform .2s cubic-bezier(.3,1.4,.5,1), border-color .2s, color .2s;
288
+ }
289
+ .ig-tile-icon .ig-ico { width: 24px; height: 24px; }
290
+ .ig-tile:hover .ig-tile-icon { transform: translateY(-3px); border-color: rgba(201,112,58,.5); color: #f0b48c; }
291
+ .ig-tile:active .ig-tile-icon { transform: scale(.94); }
292
+ .ig-tile-label { font-size: 12px; font-weight: 500; color: var(--muted); }
293
+
294
+ .ig-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
295
+ .ig-pill { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px; border-radius: 999px; font-size: 12.5px; font-weight: 600; color: var(--muted); cursor: pointer;
296
+ background: var(--glass); border: 1px solid rgba(255,255,255,.09); transition: color .2s, border-color .2s; }
297
+ .ig-pill:hover { color: var(--text); border-color: rgba(201,112,58,.45); }
298
+ .ig-pill .ig-ico { width: 15px; height: 15px; color: var(--ember); }
299
+ .ig-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ember); box-shadow: 0 0 10px rgba(201,112,58,.9); animation: igpulse 2.4s ease-in-out infinite; }
300
+ @keyframes igpulse { 50% { opacity: .35; } }
301
+
302
+ .ig-clock { width: 220px; padding: 22px 0 20px; border-radius: 24px; text-align: center;
303
+ background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)); border: 1px solid rgba(255,255,255,.07); box-shadow: var(--glass-hi); }
304
+ .ig-clock-time { font-family: var(--font-round); font-weight: 600; font-size: 34px; letter-spacing: -.03em; color: #f1ebe6; }
305
+ .ig-clock-date { margin-top: 4px; font-size: 12.5px; color: var(--muted-2); }
306
+
307
+ /* what's-new strip (auto-scrolling) */
308
+ .ig-news { width: calc(100% + 2 * clamp(16px, 4vw, 44px)); margin: 18px 0 0; padding: 0 0 clamp(14px, 3vh, 28px); overflow: hidden;
309
+ -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
310
+ .ig-news-track { display: flex; gap: 14px; width: max-content; animation: ignews 60s linear infinite; }
311
+ .ig-news:hover .ig-news-track { animation-play-state: paused; }
312
+ @keyframes ignews { to { transform: translateX(-50%); } }
313
+ .ig-news-card { width: 290px; flex: none; padding: 14px 16px 16px; border-radius: 20px; background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015)); border: 1px solid rgba(255,255,255,.07); }
314
+ .ig-news-card header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
315
+ .ig-news-card b { font-size: 13.5px; color: var(--text); font-weight: 650; }
316
+ .ig-news-card header span { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ember); }
317
+ .ig-news-card p { margin: 8px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--muted); }
318
+
319
+ @media (max-height: 760px) { .ig-clock { display: none; } }
320
+ @media (max-width: 700px) { .ig-news-card { width: 250px; } }
321
+
322
+ /* update notification */
323
+ .ignite-update {
324
+ position: fixed; top: 64px; right: 18px; z-index: 150; width: min(340px, calc(100vw - 28px)); padding: 16px 18px 16px; border-radius: 22px;
325
+ background: linear-gradient(180deg, rgba(30,26,28,.96), rgba(16,14,16,.98)); border: 1px solid rgba(255,255,255,.1);
326
+ box-shadow: var(--glass-hi), 0 22px 60px rgba(0,0,0,.65); -webkit-backdrop-filter: blur(26px); backdrop-filter: blur(26px);
327
+ animation: igrise .45s cubic-bezier(.2,1.1,.4,1) both;
328
+ }
329
+ @keyframes igrise { from { opacity: 0; transform: translateY(-10px) scale(.97); } }
330
+ .ignite-update-x { position: absolute; top: 10px; right: 12px; width: 26px; height: 26px; border-radius: 50%; background: none; border: 0; color: var(--muted-2); font-size: 20px; line-height: 1; cursor: pointer; }
331
+ .ignite-update-x:hover { color: var(--text); background: rgba(255,255,255,.07); }
332
+ .ignite-update-head { display: flex; align-items: center; gap: 8px; }
333
+ .ignite-update-badge { font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; color: #fff6ee; background: linear-gradient(180deg, #b8653a, #8e4624); }
334
+ .ignite-update-ver { font-size: 12px; font-weight: 600; color: var(--muted-2); }
335
+ .ignite-update h3 { margin: 10px 0 8px; font-family: var(--font-round); font-size: 17px; letter-spacing: -.02em; color: var(--text); }
336
+ .ignite-update ul { margin: 0 0 14px; padding-left: 18px; font-size: 13px; line-height: 1.5; color: var(--muted); }
337
+ .ignite-update li::marker { color: var(--ember); }
338
+ .ignite-update-btn { height: 34px; padding: 0 18px; border-radius: 999px; font-size: 13px; font-weight: 600; cursor: pointer; color: #fff6ee;
339
+ background: linear-gradient(180deg, #b8653a, #8e4624); border: 1px solid rgba(255,255,255,.14); }
340
+
341
+ /* =====================================================================
342
+ Shell: thin icon rail (left) + Chrome-style tab bar & toolbar (top)
343
+ ===================================================================== */
344
+ :root { --ig-rail-w: 52px; --ig-tabs-h: 38px; --ig-bar-h: 46px; --ig-top-h: 84px; --ig-bar: #151113; --ig-strip: #0b0809; }
345
+
346
+ /* the old sidebar/page bar are gone; page content sits under the new top bar */
347
+ ._ynqudi4 { display: none !important; }
348
+ ._9gmixa5 .content { padding-top: var(--ig-top-h); }
349
+
350
+ /* ---- left rail: flat, full height, part of the page ---- */
351
+ .ig-rail {
352
+ position: relative; z-index: 7; flex: none; width: var(--ig-rail-w); height: 100%;
353
+ display: flex; flex-direction: column; align-items: center; padding: 0 0 10px;
354
+ background: var(--ig-strip); border-right: 1px solid rgba(255,255,255,.06);
355
+ }
356
+ .ig-rail-logo { width: 100%; height: var(--ig-tabs-h); display: grid; place-items: center; color: var(--ember); }
357
+ .ig-rail-logo .ig-ico { width: 20px; height: 20px; fill: currentColor; stroke: none; filter: drop-shadow(0 0 8px rgba(201,112,58,.5)); }
358
+ .ig-rail-group { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: calc(var(--ig-bar-h) - 14px); }
359
+ .ig-rail-group.bottom { margin-top: auto; }
360
+ .ig-rail-btn {
361
+ position: relative; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; color: var(--muted-2); background: none; border: 0; cursor: pointer;
362
+ transition: background .15s, color .15s;
363
+ }
364
+ .ig-rail-btn:hover { background: rgba(255,255,255,.07); color: var(--text); }
365
+ .ig-rail-btn.active { color: var(--ember-soft); background: rgba(201,112,58,.14); }
366
+ .ig-rail-btn.active::before { content: ''; position: absolute; left: -7px; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ember); }
367
+
368
+ /* ---- top: tab strip + toolbar ---- */
369
+ .ig-top { position: absolute; z-index: 6; top: 0; left: var(--ig-rail-w); right: 0; height: var(--ig-top-h); display: flex; flex-direction: column; }
370
+ .ig-tabstrip { height: var(--ig-tabs-h); display: flex; align-items: flex-end; gap: 4px; padding: 0 8px; background: var(--ig-strip); }
371
+ .ig-tabs { display: flex; align-items: flex-end; gap: 2px; min-width: 0; overflow-x: auto; scrollbar-width: none; }
372
+ .ig-tabs::-webkit-scrollbar { display: none; }
373
+ .ig-tab {
374
+ position: relative; display: flex; align-items: center; gap: 8px; height: 32px; min-width: 120px; max-width: 220px; flex: 0 1 220px; padding: 0 10px 0 12px;
375
+ border-radius: 10px 10px 0 0; color: var(--muted); font-size: 12.5px; cursor: default; user-select: none; transition: background .15s, color .15s;
376
+ }
377
+ .ig-tab:hover:not(.active) { background: rgba(255,255,255,.05); color: var(--text); }
378
+ .ig-tab.active { background: var(--ig-bar); color: var(--text); }
379
+ .ig-tab.active::before, .ig-tab.active::after { content: ''; position: absolute; bottom: 0; width: 10px; height: 10px; pointer-events: none; }
380
+ .ig-tab.active::before { left: -10px; background: radial-gradient(circle at 0 0, transparent 10px, var(--ig-bar) 10.5px); }
381
+ .ig-tab.active::after { right: -10px; background: radial-gradient(circle at 100% 0, transparent 10px, var(--ig-bar) 10.5px); }
382
+ .ig-tab + .ig-tab:not(.active)::before { content: ''; position: absolute; left: -2px; top: 9px; bottom: 9px; width: 1px; background: rgba(255,255,255,.08); }
383
+ .ig-tab.active + .ig-tab::before, .ig-tab:not(.active) + .ig-tab.active::marker { display: none; }
384
+ .ig-tab-ico { flex: none; width: 16px; height: 16px; display: grid; place-items: center; }
385
+ .ig-tab-ico img { width: 14px; height: 14px; border-radius: 3px; }
386
+ .ig-tab-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
387
+ .ig-tab-x { flex: none; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; color: var(--muted-2); background: none; border: 0; cursor: pointer; opacity: 0; transition: opacity .15s, background .15s; }
388
+ .ig-tab:hover .ig-tab-x, .ig-tab.active .ig-tab-x { opacity: 1; }
389
+ .ig-tab-x:hover { background: rgba(255,255,255,.12); color: var(--text); }
390
+ .ig-newtab { flex: none; width: 28px; height: 28px; margin: 0 0 3px 2px; border-radius: 50%; display: grid; place-items: center; color: var(--muted); background: none; border: 0; cursor: pointer; transition: background .15s, color .15s; }
391
+ .ig-newtab:hover { background: rgba(255,255,255,.08); color: var(--text); }
392
+
393
+ .ig-toolbar { height: var(--ig-bar-h); display: flex; align-items: center; gap: 8px; padding: 0 10px; background: var(--ig-bar); border-bottom: 1px solid rgba(255,255,255,.06); }
394
+ .ig-nav { display: flex; align-items: center; gap: 2px; flex: none; }
395
+ .ig-nav ._1lqv40d { width: 30px; height: 30px; border-radius: 50%; }
396
+ .ig-toolbar .omnibox-wrap { position: relative; flex: 1; min-width: 0; }
397
+ .ig-toolbar .omnibox-wrap form, .ig-toolbar ._w5gq50s {
398
+ display: flex; align-items: center; height: 32px; padding: 0 12px; border-radius: 999px !important;
399
+ background: rgba(255,255,255,.06) !important; border: 1px solid transparent !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none;
400
+ }
401
+ .ig-toolbar .omnibox-wrap form:hover { background: rgba(255,255,255,.085) !important; }
402
+ .ig-toolbar .omnibox-wrap form:focus-within, .ig-toolbar ._w5gq50s.focused { border-color: rgba(201,112,58,.6) !important; background: rgba(255,255,255,.08) !important; box-shadow: 0 0 0 3px rgba(201,112,58,.13) !important; }
403
+ .ig-toolbar .omnibox-wrap input { flex: 1; min-width: 0; height: 100%; background: none; border: 0; outline: 0; font-size: 13px; color: var(--text); }
404
+ .ig-bm { display: flex; align-items: center; gap: 2px; flex: none; max-width: 32%; overflow-x: auto; scrollbar-width: none; }
405
+ .ig-bm::-webkit-scrollbar { display: none; }
406
+ .ig-bm-btn { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; color: var(--ember-soft); background: none; border: 0; cursor: pointer; transition: background .15s; }
407
+ .ig-bm-btn:hover { background: rgba(255,255,255,.08); }
408
+ .ig-bm-btn img { width: 16px; height: 16px; border-radius: 3px; }
409
+ .ig-bm-btn.add { color: var(--muted-2); }
410
+
411
+ /* the home / pages sit flush under the bar */
412
+ .ignite-home { padding-top: clamp(10px, 3vh, 36px) !important; }
413
+ .ignite-update { top: calc(var(--ig-top-h) + 12px); }
414
+
415
+ @media (max-width: 700px) {
416
+ :root { --ig-rail-w: 46px; }
417
+ .ig-bm { display: none; }
418
+ .ig-tab { min-width: 96px; }
419
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "class-studys",
3
- "version": "8.0.0",
3
+ "version": "10.0.0",
4
4
  "description": "Static SVG site",
5
5
  "main": "index.html",
6
6
  "unpkg": "index.html",