itube-specs 0.0.844 → 0.0.846

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.
@@ -167,17 +167,6 @@ const infoItems = computed<InfoItem[]>(() => [
167
167
  background-color: $channel-card-placeholder-bg;
168
168
  }
169
169
 
170
- .card-channel__description {
171
- --line-clamp: 2;
172
-
173
- @include font-xs;
174
-
175
- color: $channel-card-description;
176
- grid-column: 1/-1;
177
- grid-row: 3;
178
- margin-top: 12px;
179
- }
180
-
181
170
  .card-channel__logo {
182
171
  @include from-br(xs) {
183
172
  grid-row: 1/3;
@@ -441,6 +441,7 @@ $layout-breakpoint: 250px;
441
441
 
442
442
  .card-video.--mini .card-video__title {
443
443
  color: $video-card-mini-title;
444
+ font-weight: $video-card-mini-weight;
444
445
  }
445
446
 
446
447
  .card-video.--mini .card-video__poster-wrapper,
@@ -348,35 +348,11 @@ const socialItems = computed<ILinkItem[]>(() => {
348
348
  }
349
349
  }
350
350
 
351
- .info-main__button,
352
351
  .info-main__count {
353
352
  padding: 7px 12px;
354
353
  flex-shrink: 0;
355
354
  }
356
355
 
357
- .info-main__button {
358
- @include font-sm;
359
-
360
- display: flex;
361
- align-items: center;
362
- flex-shrink: 0;
363
- flex-wrap: nowrap;
364
- column-gap: 6px;
365
- padding: 8px 12px;
366
- color: $info-button-text;
367
- font-weight: 500;
368
- border-radius: $radius-lg;
369
- background-color: $info-button-bg;
370
-
371
- @include hover(background-color) {
372
- background-color: $info-button-bg--hover;
373
- }
374
- }
375
-
376
- .info-main__button-pretext {
377
- color: $info-button-pretext;
378
- }
379
-
380
356
  .info-main__social {
381
357
  margin-top: 8px;
382
358
  grid-column: 2;
@@ -9,14 +9,10 @@
9
9
  <LayoutFooterLanguage />
10
10
  <p class="layout-footer__copyright">{{ copyrightText }}</p>
11
11
  </div>
12
-
13
- <LazyDevThemeSwitch v-if="isDev" />
14
12
  </footer>
15
13
  </template>
16
14
 
17
15
  <script setup lang="ts">
18
- const isDev = import.meta.dev;
19
-
20
16
  const copyrightText = useAppConfig().copyrightText;
21
17
 
22
18
  const { t } = useI18n();
@@ -344,6 +344,7 @@ function onFollowClick() {
344
344
  overflow-y: auto;
345
345
  flex: 1;
346
346
  max-height: calc(var(--card-height) * 3);
347
+ background-color: $video-playlist-list-bg;
347
348
 
348
349
  @include from-br(md) {
349
350
  aspect-ratio: 384/564;
@@ -357,9 +358,12 @@ function onFollowClick() {
357
358
  display: flex;
358
359
  column-gap: 8px;
359
360
  align-items: start;
361
+ background-color: $video-playlist-card-bg;
362
+ border-left: 2px solid $video-playlist-card-border;
360
363
 
361
364
  @include hover(background-color) {
362
365
  background-color: $video-playlist-card-bg--hover;
366
+ border-color: $video-playlist-card-border--hover;
363
367
  }
364
368
 
365
369
  @include from-br(md) {
@@ -386,6 +390,7 @@ function onFollowClick() {
386
390
 
387
391
  .player-playlist__card:has(.router-link-active) {
388
392
  background-color: $video-playlist-card-bg--active;
393
+ border-color: $video-playlist-card-border--active;
389
394
  border-bottom-color: transparent;
390
395
  }
391
396
 
@@ -61,7 +61,6 @@ const { t } = useI18n();
61
61
  @include font-lg;
62
62
 
63
63
  margin-bottom: 16px;
64
- font-weight: 700;
65
64
  text-transform: uppercase;
66
65
  letter-spacing: var(--tracking-wide);
67
66
  }
@@ -159,11 +159,18 @@ const name = computed(() => {
159
159
  }
160
160
 
161
161
  .ui-chips.--small {
162
+ background-color: $chips-small-bg;
163
+ color: $chips-small-text;
164
+
162
165
  @include from-br(sm) {
163
166
  padding-block: 4px;
164
167
  padding-inline: 8px;
165
168
  height: var(--chips-height-small);
166
169
  }
170
+
171
+ @include hover(background-color) {
172
+ background-color: $chips-small-bg--hover;
173
+ }
167
174
  }
168
175
 
169
176
  .ui-chips.--micro {
@@ -196,6 +203,11 @@ const name = computed(() => {
196
203
  align-items: center;
197
204
  place-content: center;
198
205
  aspect-ratio: 1/1;
206
+ background-color: $chips-bg-alphabet;
207
+
208
+ @include hover(background-color) {
209
+ background-color: $chips-bg-alphabet--hover;
210
+ }
199
211
 
200
212
  @include from-br(sm) {
201
213
  --size: 32px;
@@ -217,7 +229,7 @@ const name = computed(() => {
217
229
  background-color: $chips-alphabet-bg--active--hover;
218
230
  }
219
231
 
220
- .ui-chips:not(.--active, .router-link-exact-active) {
232
+ .ui-chips:not(.--active, .router-link-exact-active, .--alphabet, .--small) {
221
233
  @include hover(background-color, color) {
222
234
  background-color: $chips-bg--hover;
223
235
  color: $chips-text--hover;
@@ -308,7 +308,7 @@ const { snackbarText, isSnackBarInPopup } = useSnackbar();
308
308
 
309
309
  .ui-popup__footer {
310
310
  padding: 16px 20px;
311
- border-top: 1px solid $popup-border;
311
+ border-top: 1px solid $popup-footer-border;
312
312
 
313
313
  @include from-br(sm) {
314
314
  padding: 16px 24px;
@@ -233,10 +233,4 @@ const topCards = computed(() => {
233
233
  padding-bottom: 16px;
234
234
  border-bottom: 1px solid $page-models-popular-border;
235
235
  }
236
-
237
- .view-models__categories {
238
- margin-top: auto;
239
- padding-top: 32px;
240
- border-top: 1px solid $page-models-categories-border;
241
- }
242
236
  </style>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "itube-specs",
3
3
  "type": "module",
4
- "version": "0.0.844",
4
+ "version": "0.0.846",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "./types/index.d.ts",
7
7
  "scripts": {
@@ -1,38 +0,0 @@
1
- <template>
2
- <button
3
- class="dev-theme-switch"
4
- type="button"
5
- @click="toggle"
6
- >
7
- {{ label }}
8
- </button>
9
- </template>
10
-
11
- <script setup lang="ts">
12
- type ThemeName = 'dark' | 'light';
13
-
14
- const { data, refresh } = await useFetch<{ theme: ThemeName }>('/api/dev/theme', { server: false });
15
-
16
- const label = computed(() => (data.value?.theme === 'light' ? 'theme: light' : 'theme: dark'));
17
-
18
- const toggle = async () => {
19
- const theme: ThemeName = data.value?.theme === 'light' ? 'dark' : 'light';
20
-
21
- await $fetch('/api/dev/theme', { method: 'POST', body: { theme } });
22
- await refresh();
23
- };
24
- </script>
25
-
26
- <style lang="scss">
27
- .dev-theme-switch {
28
- justify-self: center;
29
- padding: 6px 12px;
30
- border: 1px solid #888;
31
- border-radius: 6px;
32
- background-color: #222;
33
- color: #fff;
34
- cursor: pointer;
35
-
36
- @include font-xs;
37
- }
38
- </style>
@@ -1,31 +0,0 @@
1
- import { readFile, writeFile } from 'node:fs/promises';
2
- import { resolve } from 'node:path';
3
-
4
- type ThemeName = 'dark' | 'light';
5
-
6
- const THEME_FILE = resolve(process.cwd(), 'assets/scss/vars/_theme.scss');
7
-
8
- export default defineEventHandler(async (event) => {
9
- if (!import.meta.dev) {
10
- throw createError({ statusCode: 404, statusMessage: 'Not Found' });
11
- }
12
-
13
- if (event.method === 'GET') {
14
- const content = await readFile(THEME_FILE, 'utf8');
15
-
16
- return { theme: (content.includes('themes/light') ? 'light' : 'dark') as ThemeName };
17
- }
18
-
19
- const body = await readBody<{ theme?: ThemeName }>(event);
20
- const theme: ThemeName = body?.theme === 'light' ? 'light' : 'dark';
21
-
22
- await writeFile(
23
- THEME_FILE,
24
- '// Active theme. Switch by pointing the forward at another file in themes/.\n'
25
- + '// The dev-only footer toggle rewrites exactly this line.\n'
26
- + `@forward 'themes/${theme}';\n`,
27
- 'utf8',
28
- );
29
-
30
- return { theme };
31
- });