adata-ui 2.1.40 → 2.1.41-beta.1
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/-error.vue +2 -2
- package/.playground/app.vue +13 -13
- package/.playground/nuxt.config.ts +1 -1
- package/CLAUDE.md +63 -0
- package/assets/styles/main.css +12 -0
- package/assets/styles/theme.css +583 -0
- package/assets/styles/ui.css +247 -0
- package/components/elements/a-select-row/ASelectRowV2.vue +13 -17
- package/components/elements/a-select-row/index.vue +13 -12
- package/components/elements/accordion/AAccordion.vue +2 -2
- package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +1 -1
- package/components/elements/accordion/AAccordionGroup/ui.config.ts +4 -4
- package/components/elements/accordion/ui.config.ts +4 -4
- package/components/elements/alert/AAlert.vue +5 -5
- package/components/elements/bg-block/ABgBlock.vue +1 -1
- package/components/elements/button/AButton.vue +48 -45
- package/components/elements/button/AButtonV2.vue +74 -30
- package/components/elements/button-login/index.vue +2 -1
- package/components/elements/carousel/config.ui.ts +2 -2
- package/components/elements/chip-wrapper/AChipWrapper.vue +4 -3
- package/components/elements/chips/AChips.vue +4 -3
- package/components/elements/companies/AOurClients.vue +1 -1
- package/components/elements/count-up/ACountUp.vue +54 -0
- package/components/elements/curve-block/ACurveBlock.vue +15 -48
- package/components/elements/curve-block-v2/ACurveBlockV2.vue +60 -25
- package/components/elements/digit-badge/ADigitBadge.vue +17 -16
- package/components/elements/empty-box/empty-box-V2.vue +92 -0
- package/components/elements/error-template/index.vue +99 -31
- package/components/elements/feature-description/AFeatureDescription.vue +8 -8
- package/components/elements/illustrations/noAccess.vue +1 -1
- package/components/elements/infinite-carousel/AInfiniteCarousel.vue +44 -16
- package/components/elements/leave-note/ALeaveNote.vue +2 -2
- package/components/elements/pagination/APagination.vue +8 -8
- package/components/elements/section-heading/ASectionHeading.vue +35 -0
- package/components/elements/segmented/ASegmentedV2.vue +24 -21
- package/components/elements/select/ASelect.vue +28 -27
- package/components/elements/select/ASelectMobile.vue +5 -5
- package/components/elements/select/ASelectV2.vue +20 -28
- package/components/elements/select/ui/select-button.vue +8 -8
- package/components/elements/select/ui/select-list.vue +2 -2
- package/components/elements/show-more/AShowMore.vue +2 -2
- package/components/elements/show-more/AShowMoreV2.vue +3 -3
- package/components/elements/skeleton/ASkeleton.vue +1 -1
- package/components/elements/slider/ASlider.vue +3 -2
- package/components/elements/slider/ASliderV2.vue +182 -0
- package/components/elements/star-rating/AStarRating.vue +2 -2
- package/components/elements/status-badge/AStatusBadge.vue +40 -36
- package/components/elements/step-slider/AStepSliderColCard.vue +77 -39
- package/components/elements/step-slider/AStepSliderColNumber.vue +74 -53
- package/components/elements/table/table.config.ts +8 -8
- package/components/elements/tree-select/components/ATreeSelectNode.vue +4 -4
- package/components/elements/tree-select-mobile/components/ATreeSelectNodesMobile.vue +3 -3
- package/components/elements/tree-select-modal/ATreeSelectModal.vue +4 -4
- package/components/features/color-mode/AColorMode.client.vue +2 -24
- package/components/features/dropdown/ADropdownV2.vue +1 -1
- package/components/features/lang-switcher/lang-switcher.vue +6 -6
- package/components/features/payment/banner/BasicPlusLimitBanner.vue +3 -23
- package/components/features/payment/banner/PaymentBanner.vue +3 -23
- package/components/features/payment/banner/UpSellBanner.vue +1 -21
- package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +8 -7
- package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +5 -5
- package/components/features/payment/process/PaymentMethodSidePanel.vue +12 -12
- package/components/features/payment/process/PaymentTopUpSidePanel.vue +6 -6
- package/components/features/pk-mobile-services/APkMobileServices.vue +14 -43
- package/components/features//321/201hange-version/AChangeVersion.vue +1 -1
- package/components/forms/checkbox/ACheckbox.vue +8 -8
- package/components/forms/checkbox/ACheckboxV2.vue +8 -8
- package/components/forms/feedback-form/FeedbackForm.vue +8 -8
- package/components/forms/feedback-form/FeedbackFormV2.vue +9 -8
- package/components/forms/input/AInputV2.vue +39 -25
- package/components/forms/input/button/AInputButton.vue +1 -1
- package/components/forms/input/date/AInputDate.vue +13 -9
- package/components/forms/input/password/AInputPassword.vue +1 -1
- package/components/forms/input/standard/AInputStandard.vue +23 -14
- package/components/forms/input/textarea/ATextarea.vue +15 -11
- package/components/forms/input/textarea/ATextareaV2.vue +18 -13
- package/components/forms/radio-button/ARadioButton.vue +4 -4
- package/components/forms/request-demo/ARequestDemo.vue +5 -5
- package/components/forms/toggle/AToggle.vue +8 -7
- package/components/forms/toggle/AToggleV2.vue +7 -6
- package/components/modals/AConfirmationEmail.vue +3 -3
- package/components/modals/AboutTariffModal.vue +10 -9
- package/components/modals/AnotherDeviceModal.vue +11 -10
- package/components/modals/ApplicationAcceptedModal.vue +3 -2
- package/components/modals/ConnectingTariffModal.vue +1 -1
- package/components/modals/ContactsMobileModel.vue +5 -5
- package/components/modals/ContentNavigationModal.vue +8 -7
- package/components/modals/Insufficient-funds-modal.vue +4 -4
- package/components/modals/LimitReachedModal.vue +18 -7
- package/components/modals/NoAccessModal.vue +7 -3
- package/components/modals/PaymentMethodModal.vue +4 -4
- package/components/modals/RedirectsBanksModal.vue +4 -4
- package/components/modals/ReplenishModal.vue +2 -2
- package/components/modals/ReportBugConfirmModal.vue +2 -2
- package/components/modals/ReportBugModal.vue +2 -2
- package/components/modals/Resend.vue +4 -4
- package/components/modals/SubmitApplicationModal.vue +1 -5
- package/components/modals/id/AuthModal.vue +27 -47
- package/components/modals/id/IdAutoLogoutModal.vue +23 -24
- package/components/modals/id/IdBanner.vue +4 -24
- package/components/modals/id/IdConfirmAccountOtpModal.vue +5 -4
- package/components/modals/id/IdConfirmSuccessfulModal.vue +3 -3
- package/components/modals/id/IdLoginModal.vue +8 -8
- package/components/modals/id/IdModals.vue +1 -3
- package/components/modals/id/IdNewPasswordModal.vue +3 -3
- package/components/modals/id/IdOtpInput.vue +3 -3
- package/components/modals/id/IdPasswordSuccessfulModal.vue +3 -3
- package/components/modals/id/IdRecoveryModal.vue +3 -3
- package/components/modals/id/IdRegistrationModal.vue +4 -4
- package/components/modals/id/IdResetPasswordOtpModal.vue +5 -4
- package/components/modals/id/IdTwoFactorModal.vue +3 -2
- package/components/navigation/bottom-navigation/ABottomNavigation.vue +7 -7
- package/components/navigation/breadcrumbs/ABreadcrumbs.vue +4 -4
- package/components/navigation/footer/AFooter.vue +2 -2
- package/components/navigation/footer/ui/a-footer-accordion.vue +1 -1
- package/components/navigation/header/AHeader.vue +11 -11
- package/components/navigation/header/AlmatyContacts.vue +7 -7
- package/components/navigation/header/AstanaContacts.vue +4 -4
- package/components/navigation/header/CardGallery.vue +8 -7
- package/components/navigation/header/ContactMenu.vue +1 -1
- package/components/navigation/header/HeaderLink.vue +5 -5
- package/components/navigation/header/HeaderUsage.vue +14 -14
- package/components/navigation/header/ListItem.vue +4 -3
- package/components/navigation/header/NavCard.vue +6 -5
- package/components/navigation/header/NavList.vue +9 -8
- package/components/navigation/header/NotificationsMenu.vue +10 -10
- package/components/navigation/header/ProductMenu.vue +10 -9
- package/components/navigation/header/ProfileMenu.vue +13 -12
- package/components/navigation/header/SystemNotification.vue +4 -4
- package/components/navigation/line-tabs/ALineTabs.vue +10 -9
- package/components/navigation/pill-tabs/APillTabs.vue +18 -16
- package/components/navigation/pill-tabs/APillTabsV2.vue +40 -25
- package/components/navigation/side-navigation/ASideNavigation.vue +3 -3
- package/components/overlays/drawer/ADrawerV2.vue +12 -11
- package/components/overlays/modal/AModal.vue +4 -4
- package/components/overlays/modal/AModalV2.vue +17 -13
- package/components/overlays/side-panel/ASidePanel.vue +7 -7
- package/components/overlays/sideover/ASlideover.vue +4 -4
- package/components/overlays/tooltip/ATooltip.vue +3 -2
- package/components/overlays/tooltip/ATooltipV2.vue +2 -2
- package/composables/highlight.ts +2 -1
- package/eslint.config.mjs +14 -1
- package/icons/arrow/arrow-left.vue +14 -0
- package/icons/arrow-currency-gray.vue +1 -1
- package/icons/arrow-currency-green.vue +1 -1
- package/icons/arrow-currency-red.vue +1 -1
- package/icons/avatar.vue +1 -1
- package/icons/bar-chart-3.vue +3 -0
- package/icons/book-open.vue +3 -0
- package/icons/bookmark/bookmark-filled.vue +1 -0
- package/icons/braces.vue +3 -0
- package/icons/check/check-outline.vue +3 -0
- package/icons/chevron/chevron-down-outline.vue +3 -0
- package/icons/clipboard-list.vue +3 -0
- package/icons/clock-outline.vue +3 -0
- package/icons/company-egov-small.vue +1 -1
- package/icons/database.vue +3 -0
- package/icons/download-outline.vue +3 -0
- package/icons/download.vue +1 -1
- package/icons/egov.vue +1 -1
- package/icons/elicense.vue +1 -1
- package/icons/file-json.vue +3 -0
- package/icons/file-search.vue +3 -0
- package/icons/file-text.vue +3 -0
- package/icons/flask-conical.vue +3 -0
- package/icons/folder-open.vue +3 -0
- package/icons/gift-outline.vue +3 -0
- package/icons/globe-2.vue +3 -0
- package/icons/graph-loading.vue +2 -2
- package/icons/hand/hand-thumb-up-filled.vue +1 -1
- package/icons/home.vue +14 -0
- package/icons/invoice.vue +1 -0
- package/icons/key-round.vue +3 -0
- package/icons/letter/letter-a.vue +4 -2
- package/icons/letter/letter-b.vue +2 -2
- package/icons/letter/letter-c.vue +2 -2
- package/icons/letter/letter-d.vue +2 -2
- package/icons/letter/letter-e.vue +2 -2
- package/icons/logo.vue +1 -1
- package/icons/main-filter.vue +1 -1
- package/icons/menu.vue +4 -4
- package/icons/message/message.vue +1 -1
- package/icons/messages-square.vue +3 -0
- package/icons/more.vue +1 -1
- package/icons/payment/payment-card.vue +2 -2
- package/icons/radio/radio-check.vue +1 -1
- package/icons/robot-outline.vue +3 -0
- package/icons/scales/scale-outline.vue +3 -0
- package/icons/search-outline.vue +3 -0
- package/icons/send.vue +3 -0
- package/icons/star/star-filled.vue +1 -0
- package/icons/star/star-half-filled.vue +1 -0
- package/icons/sun.vue +1 -0
- package/icons/terminal.vue +3 -0
- package/icons/toasts/warning-triangle-toast.vue +1 -0
- package/icons/triangle-alert.vue +3 -0
- package/icons/users-outline.vue +3 -0
- package/icons/webhook.vue +3 -0
- package/icons/x-outline.vue +3 -0
- package/icons/yandex.vue +2 -1
- package/illustrations/address-location.vue +2 -2
- package/illustrations/award-badge.vue +105 -0
- package/illustrations/ball-with-chain.vue +7 -7
- package/illustrations/bill.vue +5 -5
- package/illustrations/buildings.vue +4 -4
- package/illustrations/calendar.vue +11 -11
- package/illustrations/chains.vue +12 -12
- package/illustrations/coin-percent.vue +3 -3
- package/illustrations/coins-stack.vue +4 -4
- package/illustrations/delete-dark.vue +1 -0
- package/illustrations/delete.vue +1 -0
- package/illustrations/doc-with-stamp.vue +5 -5
- package/illustrations/document.vue +3 -3
- package/illustrations/door.vue +79 -68
- package/illustrations/empty-badge-check.vue +20 -0
- package/illustrations/empty-ban.vue +18 -0
- package/illustrations/empty-box.vue +5 -5
- package/illustrations/empty-filter.vue +20 -0
- package/illustrations/empty-inbox.vue +19 -0
- package/illustrations/empty-scale.vue +22 -0
- package/illustrations/empty-search-x.vue +21 -0
- package/illustrations/empty-shopping-cart.vue +21 -0
- package/illustrations/empty-users-round.vue +20 -0
- package/illustrations/empty-wallet.vue +121 -155
- package/illustrations/graph-in-coin.vue +2 -2
- package/illustrations/hammer.vue +5 -5
- package/illustrations/hand-cash.vue +1 -1
- package/illustrations/info.vue +49 -36
- package/illustrations/mail-active.vue +86 -0
- package/illustrations/mail.vue +4 -4
- package/illustrations/no-access.vue +92 -0
- package/illustrations/ok.vue +86 -58
- package/illustrations/people-group.vue +1 -1
- package/illustrations/person-with-phone.vue +5 -5
- package/illustrations/person.vue +3 -3
- package/illustrations/phone-check.vue +104 -84
- package/illustrations/phone-payment-method.vue +1 -1
- package/illustrations/shield-user.vue +94 -0
- package/illustrations/stop-hand.vue +78 -71
- package/illustrations/stop-sign.vue +1 -1
- package/illustrations/suit.vue +93 -107
- package/illustrations/suitcase.vue +6 -6
- package/illustrations/terminal.vue +94 -228
- package/illustrations/trash-can.vue +60 -102
- package/illustrations/turn-on-tariff.vue +2 -2
- package/illustrations/two-persons.vue +2 -2
- package/lang/en.ts +25 -29
- package/lang/kk.ts +24 -28
- package/lang/ru.ts +24 -29
- package/nuxt.config.ts +11 -4
- package/package.json +7 -12
- package/assets/styles/index.scss +0 -166
- package/assets/styles/modules/_base.scss +0 -5
- package/assets/styles/modules/_typography.scss +0 -152
- package/components/elements/error-template/types.ts +0 -23
- package/illustrations/terminal-dark.vue +0 -48
- package/tailwind.config.ts +0 -194
- package/tests/AButton.test.ts +0 -81
|
@@ -0,0 +1,583 @@
|
|
|
1
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
2
|
+
|
|
3
|
+
@source inline("{,hover:}bg-{brand,blue,green,yellow,red,orange,purple}-{400,500,600,700,900}/{10,20}");
|
|
4
|
+
/* Класс инжектится в рантайме composables/highlight.ts — сканеру не виден. */
|
|
5
|
+
@source inline("bg-yellow-subtle");
|
|
6
|
+
|
|
7
|
+
@theme static {
|
|
8
|
+
--font-sans: "Open Sans", sans-serif;
|
|
9
|
+
|
|
10
|
+
/* Точка, с которой лендинги ДС-2026 расширяют контейнер (макет: min-[1920px]) */
|
|
11
|
+
--breakpoint-3xl: 1920px;
|
|
12
|
+
/* Дефолтная шкала v4 кончается на --container-7xl = 80rem = 1280px */
|
|
13
|
+
--container-8xl: 96rem;
|
|
14
|
+
|
|
15
|
+
--radius-*: initial;
|
|
16
|
+
--radius: 4px;
|
|
17
|
+
--radius-xs: 4px;
|
|
18
|
+
--radius-sm: 6px;
|
|
19
|
+
--radius-md: 8px;
|
|
20
|
+
--radius-10: 10px;
|
|
21
|
+
--radius-14: 14px;
|
|
22
|
+
--radius-lg: 12px;
|
|
23
|
+
--radius-xl: 16px;
|
|
24
|
+
--radius-2xl: 20px;
|
|
25
|
+
--radius-3xl: 24px;
|
|
26
|
+
|
|
27
|
+
--text-display-hero: 60px;
|
|
28
|
+
--text-display-hero--line-height: 72px;
|
|
29
|
+
--text-display-hero--letter-spacing: -0.025em;
|
|
30
|
+
--text-display-hero--font-weight: 700;
|
|
31
|
+
|
|
32
|
+
--text-display-lg: 40px;
|
|
33
|
+
--text-display-lg--line-height: 48px;
|
|
34
|
+
--text-display-lg--letter-spacing: -0.02em;
|
|
35
|
+
--text-display-lg--font-weight: 700;
|
|
36
|
+
|
|
37
|
+
--text-display-sm: 32px;
|
|
38
|
+
--text-display-sm--line-height: 40px;
|
|
39
|
+
--text-display-sm--letter-spacing: -0.015em;
|
|
40
|
+
--text-display-sm--font-weight: 700;
|
|
41
|
+
|
|
42
|
+
--text-h1: 28px;
|
|
43
|
+
--text-h1--line-height: 36px;
|
|
44
|
+
--text-h1--letter-spacing: -0.02em;
|
|
45
|
+
--text-h1--font-weight: 700;
|
|
46
|
+
|
|
47
|
+
--text-h2: 24px;
|
|
48
|
+
--text-h2--line-height: 32px;
|
|
49
|
+
--text-h2--letter-spacing: -0.015em;
|
|
50
|
+
--text-h2--font-weight: 700;
|
|
51
|
+
|
|
52
|
+
--text-h3: 20px;
|
|
53
|
+
--text-h3--line-height: 28px;
|
|
54
|
+
--text-h3--letter-spacing: -0.01em;
|
|
55
|
+
--text-h3--font-weight: 600;
|
|
56
|
+
|
|
57
|
+
--text-h4: 18px;
|
|
58
|
+
--text-h4--line-height: 28px;
|
|
59
|
+
--text-h4--letter-spacing: -0.005em;
|
|
60
|
+
--text-h4--font-weight: 600;
|
|
61
|
+
|
|
62
|
+
--text-h5: 16px;
|
|
63
|
+
--text-h5--line-height: 24px;
|
|
64
|
+
--text-h5--font-weight: 600;
|
|
65
|
+
|
|
66
|
+
--text-body-lg: 16px;
|
|
67
|
+
--text-body-lg--line-height: 24px;
|
|
68
|
+
--text-body-lg--font-weight: 400;
|
|
69
|
+
|
|
70
|
+
--text-body-lg-medium: 16px;
|
|
71
|
+
--text-body-lg-medium--line-height: 24px;
|
|
72
|
+
--text-body-lg-medium--font-weight: 500;
|
|
73
|
+
|
|
74
|
+
--text-body-lg-strong: 16px;
|
|
75
|
+
--text-body-lg-strong--line-height: 24px;
|
|
76
|
+
--text-body-lg-strong--font-weight: 600;
|
|
77
|
+
|
|
78
|
+
--text-body-md: 14px;
|
|
79
|
+
--text-body-md--line-height: 20px;
|
|
80
|
+
--text-body-md--font-weight: 400;
|
|
81
|
+
|
|
82
|
+
--text-body-md-medium: 14px;
|
|
83
|
+
--text-body-md-medium--line-height: 20px;
|
|
84
|
+
--text-body-md-medium--font-weight: 500;
|
|
85
|
+
|
|
86
|
+
--text-body-md-strong: 14px;
|
|
87
|
+
--text-body-md-strong--line-height: 20px;
|
|
88
|
+
--text-body-md-strong--font-weight: 600;
|
|
89
|
+
|
|
90
|
+
--text-body-sm: 12px;
|
|
91
|
+
--text-body-sm--line-height: 16px;
|
|
92
|
+
--text-body-sm--font-weight: 400;
|
|
93
|
+
|
|
94
|
+
--text-body-sm-medium: 12px;
|
|
95
|
+
--text-body-sm-medium--line-height: 16px;
|
|
96
|
+
--text-body-sm-medium--font-weight: 500;
|
|
97
|
+
|
|
98
|
+
--text-overline: 12px;
|
|
99
|
+
--text-overline--line-height: 16px;
|
|
100
|
+
--text-overline--letter-spacing: 0.02em;
|
|
101
|
+
--text-overline--font-weight: 600;
|
|
102
|
+
|
|
103
|
+
--text-overline-medium: 12px;
|
|
104
|
+
--text-overline-medium--line-height: 16px;
|
|
105
|
+
--text-overline-medium--letter-spacing: 0.02em;
|
|
106
|
+
--text-overline-medium--font-weight: 500;
|
|
107
|
+
|
|
108
|
+
/* @generated-colors:start (сгенерировано из Figma-токенов, генератор в update-plan.md / git show 8862721) */
|
|
109
|
+
/* brand */
|
|
110
|
+
--color-brand-50: #F0F8FF;
|
|
111
|
+
--color-brand-100: #DBEFFF;
|
|
112
|
+
--color-brand-200: #B3DCFF;
|
|
113
|
+
--color-brand-300: #75C0FF;
|
|
114
|
+
--color-brand-400: #3DA6FF;
|
|
115
|
+
--color-brand-500: #068DFF;
|
|
116
|
+
--color-brand-600: #007AE0;
|
|
117
|
+
--color-brand-700: #0066BD;
|
|
118
|
+
--color-brand-800: #005399;
|
|
119
|
+
--color-brand-900: #00427A;
|
|
120
|
+
/* base */
|
|
121
|
+
--color-base-bg-dark: #161617;
|
|
122
|
+
--color-base-bg-light: #FFFFFF;
|
|
123
|
+
--color-black: #000000;
|
|
124
|
+
--color-white: #FFFFFF;
|
|
125
|
+
/* surface */
|
|
126
|
+
--color-surface-dark: #161617;
|
|
127
|
+
--color-surface-dark-2: #393D40;
|
|
128
|
+
/* chart */
|
|
129
|
+
--color-chart-amber: #F5A623;
|
|
130
|
+
--color-chart-blue: #0070EB;
|
|
131
|
+
--color-chart-green: #6BBD6E;
|
|
132
|
+
--color-chart-red: #FB2C36;
|
|
133
|
+
/* secondary */
|
|
134
|
+
--color-secondary-50: #F2F5F8;
|
|
135
|
+
--color-secondary-100: #DEE6ED;
|
|
136
|
+
--color-secondary-200: #C0CFDD;
|
|
137
|
+
--color-secondary-300: #92ABC4;
|
|
138
|
+
--color-secondary-400: #527598;
|
|
139
|
+
--color-secondary-500: #2C3E50;
|
|
140
|
+
--color-secondary-600: #253646;
|
|
141
|
+
--color-secondary-700: #1E2B38;
|
|
142
|
+
--color-secondary-800: #17212B;
|
|
143
|
+
--color-secondary-900: #10171E;
|
|
144
|
+
/* @generated-colors:end */
|
|
145
|
+
|
|
146
|
+
/* @generated-semantic-colors:start (светлые значения; тёмные — в @layer base .dark ниже)
|
|
147
|
+
Источник: Figma-артефакт «Семантические цвета» (таблица токенов — в git-истории: git show 69039ec:docs/color-migration.md).
|
|
148
|
+
Старый генератор (git show 8862721) к этому блоку неприменим: регенерация = дамп таблицы артефакта.
|
|
149
|
+
Именование: text/* → --text-color-*, bg/* → --background-color-*, border/* → --border-color-*,
|
|
150
|
+
action/* → --color-action-*, icon/* → --color-icon-* (последние два доступны из любых цветовых утилит). */
|
|
151
|
+
/* text */
|
|
152
|
+
--text-color-primary: #2C3E50;
|
|
153
|
+
--text-color-secondary: #99A1AF;
|
|
154
|
+
--text-color-tertiary: #FFFFFF;
|
|
155
|
+
--text-color-quaternary: #6A7282;
|
|
156
|
+
--text-color-disabled: #A1A1A1;
|
|
157
|
+
--text-color-inverted: #FFFFFF;
|
|
158
|
+
--text-color-brand: #068DFF;
|
|
159
|
+
--text-color-link: #068DFF;
|
|
160
|
+
--text-color-link-hover: #007AE0;
|
|
161
|
+
--text-color-success: #00A63E;
|
|
162
|
+
--text-color-warning: #FE9A00;
|
|
163
|
+
--text-color-danger: #FB2C36;
|
|
164
|
+
/* bg */
|
|
165
|
+
--background-color-main: #FFFFFF;
|
|
166
|
+
--background-color-canvas: #F3F4F6;
|
|
167
|
+
--background-color-subtle: #F9FAFB33;
|
|
168
|
+
--background-color-muted: #F3F4F6;
|
|
169
|
+
--background-color-overlay: #10182880;
|
|
170
|
+
--background-color-brand: #068DFF;
|
|
171
|
+
--background-color-brand-subtle: #F0F8FF;
|
|
172
|
+
--background-color-success: #00A63E;
|
|
173
|
+
--background-color-success-subtle: #DCFCE7;
|
|
174
|
+
--background-color-warning: #FE9A00;
|
|
175
|
+
--background-color-warning-subtle: #FEF3C6;
|
|
176
|
+
--background-color-danger: #FB2C36;
|
|
177
|
+
--background-color-danger-subtle: #FEF2F2;
|
|
178
|
+
--background-color-badge: #E5E7EB;
|
|
179
|
+
--background-color-red-subtle: #FEF2F2;
|
|
180
|
+
--background-color-orange-subtle: #FFEDD4;
|
|
181
|
+
--background-color-amber-subtle: #FEF3C6;
|
|
182
|
+
--background-color-yellow-subtle: #FEF9C2;
|
|
183
|
+
--background-color-lime-subtle: #ECFCCA;
|
|
184
|
+
--background-color-green-subtle: #DCFCE7;
|
|
185
|
+
--background-color-emerald-subtle: #D0FAE5;
|
|
186
|
+
--background-color-teal-subtle: #CBFBF1;
|
|
187
|
+
--background-color-cyan-subtle: #CEFAFE;
|
|
188
|
+
--background-color-sky-subtle: #DFF2FE;
|
|
189
|
+
--background-color-blue-subtle: #DBEFFF;
|
|
190
|
+
--background-color-indigo-subtle: #E0E7FF;
|
|
191
|
+
--background-color-violet-subtle: #EDE9FE;
|
|
192
|
+
--background-color-purple-subtle: #F3E8FF;
|
|
193
|
+
--background-color-fuchsia-subtle: #FAE8FF;
|
|
194
|
+
--background-color-pink-subtle: #FCE7F3;
|
|
195
|
+
--background-color-rose-subtle: #FFE4E6;
|
|
196
|
+
/* border */
|
|
197
|
+
--border-color-default: #E5E7EB;
|
|
198
|
+
--border-color-strong: #D1D5DC;
|
|
199
|
+
--border-color-focus: #068DFF;
|
|
200
|
+
--border-color-brand: #068DFF;
|
|
201
|
+
--border-color-info: #2B7FFF;
|
|
202
|
+
--border-color-success: #00A63E;
|
|
203
|
+
--border-color-warning: #E17100;
|
|
204
|
+
--border-color-danger: #FB2C36;
|
|
205
|
+
--border-color-red: #FFA2A2;
|
|
206
|
+
--border-color-orange: #FF6900;
|
|
207
|
+
--border-color-amber: #FE9A00;
|
|
208
|
+
--border-color-yellow: #F0B100;
|
|
209
|
+
--border-color-lime: #7CCF00;
|
|
210
|
+
--border-color-green: #00C950;
|
|
211
|
+
--border-color-emerald: #00BC7D;
|
|
212
|
+
--border-color-teal: #00BBA7;
|
|
213
|
+
--border-color-cyan: #00B8DB;
|
|
214
|
+
--border-color-sky: #00A6F4;
|
|
215
|
+
--border-color-indigo: #615FFF;
|
|
216
|
+
--border-color-violet: #8E51FF;
|
|
217
|
+
--border-color-purple: #AD46FF;
|
|
218
|
+
--border-color-fuchsia: #E12AFB;
|
|
219
|
+
--border-color-pink: #F6339A;
|
|
220
|
+
--border-color-rose: #FF2056;
|
|
221
|
+
/* action */
|
|
222
|
+
--color-action-primary: #068DFF;
|
|
223
|
+
--color-action-primary-hover: #007AE0;
|
|
224
|
+
--color-action-primary-active: #0066BD;
|
|
225
|
+
--color-action-primary-fg: #FFFFFF;
|
|
226
|
+
--color-action-secondary: #FFFFFF;
|
|
227
|
+
--color-action-secondary-hover: #F9FAFB;
|
|
228
|
+
--color-action-secondary-fg: #2C3E50;
|
|
229
|
+
--color-action-danger: #E7000B;
|
|
230
|
+
--color-action-danger-hover: #C10007;
|
|
231
|
+
--color-action-danger-fg: #FFFFFF;
|
|
232
|
+
--color-action-disabled: #E5E7EB;
|
|
233
|
+
--color-action-disabled-fg: #99A1AF;
|
|
234
|
+
/* icon */
|
|
235
|
+
--color-icon-default: #6A7282;
|
|
236
|
+
--color-icon-strong: #2C3E50;
|
|
237
|
+
--color-icon-secondary: #99A1AF;
|
|
238
|
+
--color-icon-disabled: #D1D5DC;
|
|
239
|
+
--color-icon-inverted: #FFFFFF;
|
|
240
|
+
--color-icon-brand: #068DFF;
|
|
241
|
+
--color-icon-on-brand: #FFFFFF;
|
|
242
|
+
--color-icon-white: #FFFFFF;
|
|
243
|
+
--color-icon-success: #00A63E;
|
|
244
|
+
--color-icon-warning: #FFB900;
|
|
245
|
+
--color-icon-danger: #E7000B;
|
|
246
|
+
--color-icon-red: #E7000B;
|
|
247
|
+
--color-icon-orange: #FF6900;
|
|
248
|
+
--color-icon-amber: #FE9A00;
|
|
249
|
+
--color-icon-yellow: #F0B100;
|
|
250
|
+
--color-icon-lime: #7CCF00;
|
|
251
|
+
--color-icon-green: #00A63E;
|
|
252
|
+
--color-icon-emerald: #00BC7D;
|
|
253
|
+
--color-icon-teal: #00BBA7;
|
|
254
|
+
--color-icon-cyan: #00B8DB;
|
|
255
|
+
--color-icon-sky: #00A6F4;
|
|
256
|
+
--color-icon-blue: #2B7FFF;
|
|
257
|
+
--color-icon-indigo: #615FFF;
|
|
258
|
+
--color-icon-violet: #8E51FF;
|
|
259
|
+
--color-icon-purple: #AD46FF;
|
|
260
|
+
--color-icon-fuchsia: #C800DE;
|
|
261
|
+
--color-icon-pink: #E60076;
|
|
262
|
+
--color-icon-rose: #FF2056;
|
|
263
|
+
/* хелперы вне артефакта (= bg/Main): замена бывшего флипа fill-white/stroke-white в иллюстрациях */
|
|
264
|
+
--fill-main: #FFFFFF;
|
|
265
|
+
--stroke-main: #FFFFFF;
|
|
266
|
+
/* @generated-semantic-colors:end */
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/* Тёмная тема: переопределяются только СЕМАНТИЧЕСКИЕ токены (text-primary, bg-main,
|
|
270
|
+
border-default, action/icon-*); примитивные шкалы (gray-*, red-*, brand-* и т.д.)
|
|
271
|
+
константны в обеих темах. Утилиты компилируются в var(--…-*), поэтому семантические
|
|
272
|
+
классы переключаются сами; цветовые dark:-классы легальны для краевых случаев.
|
|
273
|
+
@layer base идёт после @layer theme → побеждает :root. */
|
|
274
|
+
@layer base {
|
|
275
|
+
:root {
|
|
276
|
+
color-scheme: light;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.dark {
|
|
280
|
+
color-scheme: dark;
|
|
281
|
+
/* @generated-semantic-colors-dark:start (тёмные значения семантических токенов, 1:1 с артефактом —
|
|
282
|
+
включая тема-константные, чтобы регенерация из Figma была тупым дампом таблицы) */
|
|
283
|
+
/* text */
|
|
284
|
+
--text-color-primary: #FAFAFA;
|
|
285
|
+
--text-color-secondary: #99A1AF;
|
|
286
|
+
--text-color-tertiary: #FFFFFF;
|
|
287
|
+
--text-color-quaternary: #99A1AF;
|
|
288
|
+
--text-color-disabled: #D4D4D4;
|
|
289
|
+
--text-color-inverted: #161617;
|
|
290
|
+
--text-color-brand: #3DA6FF;
|
|
291
|
+
--text-color-link: #3DA6FF;
|
|
292
|
+
--text-color-link-hover: #B3DCFF;
|
|
293
|
+
--text-color-success: #00C950;
|
|
294
|
+
--text-color-warning: #FFB900;
|
|
295
|
+
--text-color-danger: #FF6467;
|
|
296
|
+
/* bg */
|
|
297
|
+
--background-color-main: #161617;
|
|
298
|
+
--background-color-canvas: #0F0F10;
|
|
299
|
+
--background-color-subtle: #171717;
|
|
300
|
+
--background-color-muted: #1F1F21;
|
|
301
|
+
--background-color-overlay: #00000099;
|
|
302
|
+
--background-color-brand: #068DFF;
|
|
303
|
+
--background-color-brand-subtle: #068DFF1A;
|
|
304
|
+
--background-color-success: #008236;
|
|
305
|
+
--background-color-success-subtle: #032E15;
|
|
306
|
+
--background-color-warning: #E17100;
|
|
307
|
+
--background-color-warning-subtle: #461901;
|
|
308
|
+
--background-color-danger: #FF6467;
|
|
309
|
+
--background-color-danger-subtle: #4608094D;
|
|
310
|
+
--background-color-badge: #4A5565;
|
|
311
|
+
--background-color-red-subtle: #82181A;
|
|
312
|
+
--background-color-orange-subtle: #7E2A0C;
|
|
313
|
+
--background-color-amber-subtle: #461901;
|
|
314
|
+
--background-color-yellow-subtle: #432004;
|
|
315
|
+
--background-color-lime-subtle: #192E03;
|
|
316
|
+
--background-color-green-subtle: #032E15;
|
|
317
|
+
--background-color-emerald-subtle: #002C22;
|
|
318
|
+
--background-color-teal-subtle: #022F2E;
|
|
319
|
+
--background-color-cyan-subtle: #053345;
|
|
320
|
+
--background-color-sky-subtle: #052F4A;
|
|
321
|
+
--background-color-blue-subtle: #00427A;
|
|
322
|
+
--background-color-indigo-subtle: #1E1A4D;
|
|
323
|
+
--background-color-violet-subtle: #2F0D68;
|
|
324
|
+
--background-color-purple-subtle: #3C0366;
|
|
325
|
+
--background-color-fuchsia-subtle: #4B004F;
|
|
326
|
+
--background-color-pink-subtle: #510424;
|
|
327
|
+
--background-color-rose-subtle: #4D0218;
|
|
328
|
+
/* border */
|
|
329
|
+
--border-color-default: #404040;
|
|
330
|
+
--border-color-strong: #6A7282;
|
|
331
|
+
--border-color-focus: #3DA6FF;
|
|
332
|
+
--border-color-brand: #3DA6FF;
|
|
333
|
+
--border-color-info: #51A2FF;
|
|
334
|
+
--border-color-success: #05DF72;
|
|
335
|
+
--border-color-warning: #FFB900;
|
|
336
|
+
--border-color-danger: #FF6467;
|
|
337
|
+
--border-color-red: #FF6467;
|
|
338
|
+
--border-color-orange: #FF8904;
|
|
339
|
+
--border-color-amber: #FFB900;
|
|
340
|
+
--border-color-yellow: #FDC700;
|
|
341
|
+
--border-color-lime: #9AE600;
|
|
342
|
+
--border-color-green: #05DF72;
|
|
343
|
+
--border-color-emerald: #00D492;
|
|
344
|
+
--border-color-teal: #00D5BE;
|
|
345
|
+
--border-color-cyan: #00D3F2;
|
|
346
|
+
--border-color-sky: #00BCFF;
|
|
347
|
+
--border-color-indigo: #7C86FF;
|
|
348
|
+
--border-color-violet: #A684FF;
|
|
349
|
+
--border-color-purple: #C27AFF;
|
|
350
|
+
--border-color-fuchsia: #ED6AFF;
|
|
351
|
+
--border-color-pink: #FB64B6;
|
|
352
|
+
--border-color-rose: #FF637E;
|
|
353
|
+
/* action */
|
|
354
|
+
--color-action-primary: #068DFF;
|
|
355
|
+
--color-action-primary-hover: #007AE0;
|
|
356
|
+
--color-action-primary-active: #0066BD;
|
|
357
|
+
--color-action-primary-fg: #FFFFFF;
|
|
358
|
+
--color-action-secondary: #262626;
|
|
359
|
+
--color-action-secondary-hover: #404040;
|
|
360
|
+
--color-action-secondary-fg: #FFFFFF;
|
|
361
|
+
--color-action-danger: #FF6467;
|
|
362
|
+
--color-action-danger-hover: #82181A;
|
|
363
|
+
--color-action-danger-fg: #FFFFFF;
|
|
364
|
+
--color-action-disabled: #404040;
|
|
365
|
+
--color-action-disabled-fg: #6A7282;
|
|
366
|
+
/* icon */
|
|
367
|
+
--color-icon-default: #D1D5DC;
|
|
368
|
+
--color-icon-strong: #F9FAFB;
|
|
369
|
+
--color-icon-secondary: #99A1AF;
|
|
370
|
+
--color-icon-disabled: #4A5565;
|
|
371
|
+
--color-icon-inverted: #2C3E50;
|
|
372
|
+
--color-icon-brand: #3DA6FF;
|
|
373
|
+
--color-icon-on-brand: #FFFFFF;
|
|
374
|
+
--color-icon-white: #000000;
|
|
375
|
+
--color-icon-success: #00C950;
|
|
376
|
+
--color-icon-warning: #FFB900;
|
|
377
|
+
--color-icon-danger: #FF6467;
|
|
378
|
+
--color-icon-red: #FF6467;
|
|
379
|
+
--color-icon-orange: #FF8904;
|
|
380
|
+
--color-icon-amber: #FFB900;
|
|
381
|
+
--color-icon-yellow: #FDC700;
|
|
382
|
+
--color-icon-lime: #9AE600;
|
|
383
|
+
--color-icon-green: #00C950;
|
|
384
|
+
--color-icon-emerald: #00D492;
|
|
385
|
+
--color-icon-teal: #00D5BE;
|
|
386
|
+
--color-icon-cyan: #00D3F2;
|
|
387
|
+
--color-icon-sky: #00BCFF;
|
|
388
|
+
--color-icon-blue: #51A2FF;
|
|
389
|
+
--color-icon-indigo: #7C86FF;
|
|
390
|
+
--color-icon-violet: #A684FF;
|
|
391
|
+
--color-icon-purple: #C27AFF;
|
|
392
|
+
--color-icon-fuchsia: #ED6AFF;
|
|
393
|
+
--color-icon-pink: #FB64B6;
|
|
394
|
+
--color-icon-rose: #FF637E;
|
|
395
|
+
/* хелперы (= bg/Main) */
|
|
396
|
+
--fill-main: #161617;
|
|
397
|
+
--stroke-main: #161617;
|
|
398
|
+
/* @generated-semantic-colors-dark:end */
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
/* Компат-слой поведения v3 (официальный upgrade guide) */
|
|
403
|
+
@layer base {
|
|
404
|
+
/* В v4 дефолтный border-color стал currentColor; возвращаем прежний вид (= gray-200 в лайте) */
|
|
405
|
+
*,
|
|
406
|
+
::after,
|
|
407
|
+
::before,
|
|
408
|
+
::backdrop,
|
|
409
|
+
::file-selector-button {
|
|
410
|
+
border-color: var(--border-color-default, currentColor);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
/* Плейсхолдеры: токена placeholder в ДС нет, ближайший — text/disabled
|
|
414
|
+
(осознанная светлая дельта #D1D5DC → #A1A1A1, см. git show 69039ec:docs/color-migration.md) */
|
|
415
|
+
input::placeholder,
|
|
416
|
+
textarea::placeholder {
|
|
417
|
+
color: var(--text-color-disabled);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/* В v4 у кнопок cursor: default */
|
|
421
|
+
button:not(:disabled),
|
|
422
|
+
[role="button"]:not(:disabled) {
|
|
423
|
+
cursor: pointer;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/* Легаси-типографика (Figma DESIGN-SYSTEM-NEW, до ДС-2026) */
|
|
428
|
+
@layer components {
|
|
429
|
+
.a-container {
|
|
430
|
+
@apply container mx-auto px-4 2xl:px-16;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/* Headings */
|
|
434
|
+
.heading-01 {
|
|
435
|
+
@apply font-bold text-[2rem] leading-10;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
.heading-02 {
|
|
439
|
+
@apply font-bold text-2xl leading-8;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
.heading-03 {
|
|
443
|
+
@apply font-semibold text-xl leading-6;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.heading-04 {
|
|
447
|
+
@apply font-semibold text-base leading-5;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
.heading-05 {
|
|
451
|
+
@apply font-semibold text-sm leading-5;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
/* Body */
|
|
455
|
+
.body-400 {
|
|
456
|
+
@apply font-normal text-sm leading-5;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
.body-500 {
|
|
460
|
+
@apply font-medium text-sm leading-5;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
.body-600 {
|
|
464
|
+
@apply font-semibold text-sm leading-5;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.body-s-400 {
|
|
468
|
+
@apply font-normal text-sm leading-4;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
.body-s-500 {
|
|
472
|
+
@apply font-medium text-sm leading-4;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/* Caption */
|
|
476
|
+
.caption-400 {
|
|
477
|
+
@apply font-normal text-[0.625rem] leading-4;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.caption-500 {
|
|
481
|
+
@apply font-medium text-[0.625rem] leading-4;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
.caption-700 {
|
|
485
|
+
@apply font-bold text-[0.625rem] leading-4;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
/* Form */
|
|
489
|
+
.label-400 {
|
|
490
|
+
@apply font-normal text-sm leading-5;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
.label-600 {
|
|
494
|
+
@apply font-semibold text-sm leading-5;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
.label-s-400 {
|
|
498
|
+
@apply font-normal text-xs leading-4;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
.label-s-700 {
|
|
502
|
+
@apply font-bold text-xs leading-4;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.optional-i-700 {
|
|
506
|
+
@apply font-bold italic text-sm leading-5;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
.placeholder-300 {
|
|
510
|
+
@apply font-light text-sm leading-5;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.description-400 {
|
|
514
|
+
@apply font-normal text-xs leading-5;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
/* Link */
|
|
518
|
+
.link-400 {
|
|
519
|
+
@apply font-normal text-sm leading-5;
|
|
520
|
+
color: var(--text-color-link);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
.link-stroke-400 {
|
|
524
|
+
@apply font-normal text-sm leading-5;
|
|
525
|
+
color: var(--text-color-link);
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
.link-s-400 {
|
|
529
|
+
@apply font-normal text-sm leading-4;
|
|
530
|
+
color: var(--text-color-link);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
.link-s-stroke-400 {
|
|
534
|
+
@apply font-normal text-sm leading-4;
|
|
535
|
+
color: var(--text-color-link);
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
.link-small-800 {
|
|
539
|
+
@apply font-bold text-sm leading-4;
|
|
540
|
+
color: var(--text-color-link);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
/* Special Styles */
|
|
544
|
+
.display-80-700 {
|
|
545
|
+
@apply font-bold text-[5rem] leading-[6.5rem];
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.display-80-400 {
|
|
549
|
+
@apply font-normal text-[5rem] leading-[6.5rem];
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
.display-60-700 {
|
|
553
|
+
@apply font-bold text-[3.75rem] leading-[4.750rem];
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
.display-60-400 {
|
|
557
|
+
@apply font-normal text-[3.75rem] leading-[4.750rem];
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
.display-48-700 {
|
|
561
|
+
@apply font-bold text-[3rem] leading-[4rem];
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
.display-48-400 {
|
|
565
|
+
@apply font-normal text-[3rem] leading-[4rem];
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
.numbers-60-700 {
|
|
569
|
+
@apply font-bold text-[3.75rem] leading-[3.5rem];
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
.numbers-60-400 {
|
|
573
|
+
@apply font-normal text-[3.75rem] leading-[3.5rem];
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
.numbers-40-700 {
|
|
577
|
+
@apply font-bold text-[2.5rem] leading-[3.375rem];
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
.numbers-40-400 {
|
|
581
|
+
@apply font-normal text-[2.5rem] leading-[3.375rem];
|
|
582
|
+
}
|
|
583
|
+
}
|