Skip to content

Fliqle/vkui-tokens

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

vkui logo

vkui logo

Tests Npm GitHub Repo stars

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ докумСнтация

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ содСрТит Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π΅Π΄ΠΈΠ½ΠΎΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½-систСмы VKUI ΠΈ ΠΈΡ… значСния для Ρ‚Π΅ΠΌ оформлСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Π’Π΅ΠΌΡ‹ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹: css, scss, less, pcss, styl, js, json.

Для описания интСрфСйсов Ρ‚Π΅ΠΌ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ TypeScript.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ changelog находится Π½Π° страницС Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Π² GitHub!

ИспользованиС

УстанавливаСм npm-ΠΏΠ°ΠΊΠ΅Ρ‚ @vkontakte/vkui-tokens:

npm i --save @vkontakte/vkui-tokens@latest

ИспользованиС CSS-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΌΡ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ Π½Π° страницу

Π’ любом CSS-Ρ„Π°ΠΉΠ»Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» Ρ‚Π΅ΠΌΡ‹ со значСниями ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

@import '@vkontakte/vkui-tokens/themes/vkBase/cssVars/declarations/index.css';

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² вёрсткС

ИспользованиС в CSS

.class:hover {
  background-color: var(--vkui--color_background--hover);
}

ИспользованиС CSS-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² JavaScript (TypeScript)

import baseTheme from '@vkontakte/vkui-tokens/themes/vkBase/cssVars/theme';

// БобствСно имя CSS-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π°)
console.log(baseTheme.colorBackground.hover.name); // --vkui--color_background--hover;
// Π‘Π½ΠΈΠΏΠΏΠ΅Ρ‚ для использования CSS-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
console.log(baseTheme.colorBackground.hover.value); // var(--vkui--color_background--hover, #F5F5F7)

// ДинамичСски (с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ)
// ΡƒΠ·Π½Π°Ρ‘ΠΌ, Ρ‡Π΅ΠΌΡƒ Ρ€Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ myElement:
getComputedStyle(myElement).getPropertyValue(baseTheme.colorBackground.hover.name);

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ использованиС Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π²ΠΈΠ΄ Ρ‚Π΅ΠΌΡ‹ Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° элСмСнтов, Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ классами .vkui--force-${auto | regular | compact | large | largeX ...}. Π‘ΠΌΠΎΡ‚Ρ€ΠΈ Π΄Π΅ΠΌΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ спСц. классов.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΈΠ½Ρ‚Π° (ex. --vkui--sizefield_height--**_compact**), ΠΎΠ½ΠΈ всС Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² :root)

ИспользованиС Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°

js/ts/json

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ‚Π΅ΠΌΡƒ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ:

import baseTheme from '@vkontakte/vkui-tokens/themes/vkBase';

// do whatever you want with baseTheme

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² scss/styl/less root Ρ‚Π΅ΠΌΡ‹ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ Ρ‚ΡƒΠ΄Π° (снизу синтаксис SCSS)

@import '~@vkontakte/vkui-tokens/themes/vkBase/index';

.myAwesomeClass {
  background-color: $color-bg;
}

.myAwesomeClass:hover {
  background-color: $color-bg--hover;
}

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ pcss Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‚Π΅ΠΌΡ‹ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°

  1. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ„Π°ΠΉΠ», Π³Π΄Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡƒ, ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Ρ‘:

    @import '@vkontakte/vkui-tokens/themes/vkBase';
  2. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ„Π°ΠΉΠ» Ρ‚Π΅ΠΌΡ‹, смотрим ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    width: var(--size-content-block-width);
  3. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‚Π°ΠΊ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ postcss:

    npm i --save-dev postcss

    Для запуска Ρƒ postcss Π΅ΡΡ‚ΡŒ командная строка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚ΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ:

    npm i --save-dev postcss-cli
  4. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ postcss. Для этого создаСм Ρ„Π°ΠΉΠ» postcss.config.js (ΠΌΠΎΠΆΠ½ΠΎ Π² любом мСстС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π² ΠΊΠΎΡ€Π½Π΅) ΠΈ пишСм Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹:

    const postcssPresetEnv = require('postcss-preset-env');
    
    module.exports = {
      plugins: [
        require('postcss-import'),
        require('precss'),
        require('postcss-css-variables'),
        require('postcss-custom-media'),
        require('postcss-media-minmax'),
        require('postcss-extend-rule'),
        postcssPresetEnv({
          stage: 0,
        }),
        require('postcss-color-mix'),
        require('cssnano'),
      ],
    };

    Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π½Π΅ понадобятся всС эти ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, поэтому Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… (https://www.postcss.parts/). НуТно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» вашСй Ρ‚Π΅ΠΌΡ‹ ΠΈ ваш css (scss ΠΈ Π΄Ρ€.), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

  5. УстанавливаСм всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ написали Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    npm i --save-dev postcss-import
  6. НастраиваСм сборку postcss.

    Π‘Π±ΠΎΡ€ΠΊΠ° производится ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ postcss Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. ΠŸΡ€ΠΎ Π½ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚ https://github.com/postcss/postcss-cli

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

    postcss src/main.css -c ./ --dir public

    Вакая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΈΡ‚ Ρ„Π°ΠΉΠ» src/main.css с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΏΠ°ΠΏΠΊΡƒ public.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ сборка своих Ρ‚Π΅ΠΌ инструмСнтами Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт интСрфСйсы ΠΈ Ρ‚Π΅ΠΌΡ‹, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΈ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

Π‘Π±ΠΎΡ€ΠΊΠ° Ρ‚Π΅ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ раскрытиС наслСдования, Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ†Π²Π΅Ρ‚ΠΎΠ² состояний (hover, active), ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ ΠΈ "пиксСлизация" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ‚.Π΄.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ настройка

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для запуска Π² Node-срСдС, ΠΈ Π½Π΅ подходят для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΌΡ‹ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅ (Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠΉ срСдС). Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скриптов Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ:

npm i --save-dev color common-tags css.escape

НаслСдованиС ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΡ‹

НапримСр, возьмСм Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ (ΡΠ²Π΅Ρ‚Π»ΡƒΡŽ ΠΈ Ρ‚Π΅ΠΌΠ½ΡƒΡŽ) ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ Π½ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скрипт:

import type { ThemeDescription } from '@vkontakte/vkui-tokens/interfaces/general';
import type { Adaptive } from '@vkontakte/vkui-tokens/interfaces/general/tools';
import {
  lightTheme as baseTheme,
  darkTheme,
} from '@vkontakte/vkui-tokens/themeDescriptions/base/vk.js';
import { expandAll } from '@vkontakte/vkui-tokens/build/expandTheme';
import { compileStyles } from '@vkontakte/vkui-tokens/build/compilers/styles/compileStyles';

interface MyNewAwesomeThemeDescription extends ThemeDescription {
  myNewAwesomeToken: Adaptive<number>;
}

const myNewAwesomeTheme: MyNewAwesomeThemeDescription = {
  ...baseTheme,
  // НазваниС Ρ‚Π΅ΠΌΡ‹
  themeName: 'myAwesomeTheme',
  // Базовая Ρ‡Π°ΡΡ‚ΡŒ названия Ρ‚Π΅ΠΌΡ‹ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ локального сСлСктора, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: .vkui--myAwesomeTheme--light)
  themeNameBase: 'myAwesomeTheme',
  // Π’Π΅ΠΌΠ°, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, носит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€
  themeInheritsFrom: 'vkBase',
  // Новый Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½
  myNewAwesomeToken: {
    regular: 20,
    compact: 12,
  },
  colors: {
    // БохраняСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ значСния ΠΈΠ· Ρ‚Π΅ΠΌΡ‹
    ...baseTheme.colors,
    // ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
    colorTextAccentThemed: '#ff0000',
  },
};

const myNewAwesomeThemeDark: MyNewAwesomeThemeDescription = {
  ...myNewAwesomeTheme,
  ...darkTheme,
  themeName: 'myAwesomeThemeDark',
  themeNameBase: 'myAwesomeTheme',
  themeInheritsFrom: 'vkBaseDark',
  colors: {
    ...darkTheme.colors,
    colorTextAccentThemed: '#00ff00',
  },
};

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ‚Π΅ΠΌ Π½Π° основС описания
const { theme, pixelifyTheme, cssVarsTheme } = expandAll(myNewAwesomeTheme);
const { pixelifyTheme: pixelifyThemeDark } = expandAll(myNewAwesomeThemeDark);

// Для использования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π²Π΅Π±Π΅ Π²Π°ΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ компиляция "пиксСляризованной" Ρ‚Π΅ΠΌΡ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ '.css':
const cssString = compileStyles('css', pixelifyTheme);
const cssStringDark = compileStyles('css', pixelifyThemeDark);

// ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ CSS-строки со всСми ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² DOM ΠΈΠ»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»

Roadmap

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡƒΠΌΠ½ΡƒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ active, hover состояний Ρ†Π²Π΅Ρ‚Π°. ΠŸΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ‘ΠΌΠ½Ρ‹ΠΉ ΠΈ свСтлый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ‚Π΅ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ сам Ρ†Π²Π΅Ρ‚, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ гСнСрируСтся состояниС. (Ρ€Π΅ΡˆΠ°Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ†Π²Π΅Ρ‚ навСдСния, сгСнСрированный ΠΎΡ‚ синСго, ΠΏΠ»ΠΎΡ…ΠΎ Π²ΠΈΠ΄Π΅Π½ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ²).
  • ГСнСрация Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΏΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅.
  • ВСкстовоС описаниС сСмантики ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π°.
  • Π‘ΠΎΠ»Π΅Π΅ подробная докумСнтация.
  • Π‘Π°ΠΉΡ‚ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ описаниСм.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

  1. Π”ΠΎΠΊΠ»Π°Π΄ ΠΏΡ€ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½-систСмы Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅: Ρ‚Π°ΠΌ рассказываСтся, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄ΠΈΠ·Π°ΠΉΠ½-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Ρ‚ΡƒΡ‚ UI-kit ΠΈ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ.
  2. БСрия Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠΎΠ² Π½Π° youtube, Π³Π΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Π½ΠΎ со старым Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, Π½Π΅ ΠΏΡƒΠ³Π°ΠΉΡ‚Π΅ΡΡŒ), ΠΊΠ°ΠΊ ядра Π΄ΠΈΠ·Π°ΠΉΠ½-систСмы Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ
  3. Opensource Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (UI-kit) VKUI, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹.
  4. Π‘Π°ΠΉΡ‚ Π΄ΠΈΠ·Π°ΠΉΠ½-систСма Paradigm, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выросла эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ дизайнСрскиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стали основой этого рСпозитория.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 97.3%
  • JavaScript 2.6%
  • Shell 0.1%