Skip to content

Latest commit

 

History

History
112 lines (88 loc) · 3.35 KB

colors.mdx

File metadata and controls

112 lines (88 loc) · 3.35 KB
id title sidebar_position
colors
Цветовая палитра
3

Цветовая палитра

Цветовая палитра – одна из основных частей восприятия платформы Salute.

Цвета

Цвета в Plasma Tokens представляют собой CSS custom properties c заданным цветом по умолчанию. Это позволяет переопределять цвета с помощью Тем.

Цвета можно получить из корня пакета:

import { accent } from '@salutejs/plasma-tokens';

Также доступны сами значения пременных:

import { colorValues } from '@salutejs/plasma-tokens';

console.log(colorValues.black); // –> '#080808'

Пример использования цветов для создания основной подложки веб-приложения:

import React from 'react';
// createGlobalStyle нужен для создания глобальных стилей
import { createGlobalStyle } from 'styled-components';
// получаем цвета для нашего интерфейса
import { text, background, gradient } from '@salutejs/plasma-tokens';
/**
 * text - основной цвет текста
 * background - основной цвет фона
 * gradient - градиентная заливка фона
 */

const DocStyles = createGlobalStyle`
  html {
    color: ${text};
    background-color: ${background};
    background-image: ${gradient};

    /** необходимо залить градиентом всю подложку */
    min-height: 100vh;
  }
`;

export default function App() {
    return (
        <div>
            {/* Используем глобальные react-компоненты один раз */}
            <DocStyles />
        </div>
    );
}

Темы

Каждая тема соотносится с персонажем ассистента и меняет цветовую гамму веб-приложения.

В пакете предоставлены 6 тем:

  • darkSber
  • darkEva
  • darkJoy
  • lightSber
  • lightEva
  • lightJoy

Подключение:

import React from 'react';
// createGlobalStyle нужен для создания глобальных стилей
import { createGlobalStyle } from 'styled-components';
// получаем тему персонажа
import { darkJoy } from '@salutejs/plasma-tokens/themes';
// получаем цвета для нашего интерфейса
import { text, background, gradient } from '@salutejs/plasma-tokens';

const DocStyles = createGlobalStyle`
    html {
        color: ${text};
        background-color: ${background};
        background-image: ${gradient};

        /** необходимо залить градиентом всю подложку */
        min-height: 100vh;
    }
`;

// создаем react-компонент для персонажа
const Theme = createGlobalStyle(darkJoy);

export default function App() {
    return (
        <>
            {/* Используем глобальные react-компоненты один раз */}
            <DocStyles />
            <Theme />
        </>
    );
}