diff --git a/ordinis-admin-ui/src/auth/AuthBadge.tsx b/ordinis-admin-ui/src/auth/AuthBadge.tsx index e26a857..a6b5776 100644 --- a/ordinis-admin-ui/src/auth/AuthBadge.tsx +++ b/ordinis-admin-ui/src/auth/AuthBadge.tsx @@ -15,7 +15,7 @@ export function AuthBadge() { if (auth.isLoading) { return ( - + {t('loading')} ) diff --git a/ordinis-admin-ui/src/components/form/SchemaDrivenForm.tsx b/ordinis-admin-ui/src/components/form/SchemaDrivenForm.tsx index daf5498..a8bf4cd 100644 --- a/ordinis-admin-ui/src/components/form/SchemaDrivenForm.tsx +++ b/ordinis-admin-ui/src/components/form/SchemaDrivenForm.tsx @@ -327,7 +327,7 @@ const FieldBody = ({
{label}{' '} - i18n + i18n
{supportedLocales.map((loc) => ( diff --git a/ordinis-admin-ui/src/components/layout/Sidebar.tsx b/ordinis-admin-ui/src/components/layout/Sidebar.tsx index 016df21..0d4cf9c 100644 --- a/ordinis-admin-ui/src/components/layout/Sidebar.tsx +++ b/ordinis-admin-ui/src/components/layout/Sidebar.tsx @@ -126,7 +126,7 @@ export function Sidebar() { {visibleSections.map((section, idx) => (
{section.label && ( -
+
{section.label}
)} diff --git a/ordinis-admin-ui/src/components/lineage/CascadeConfirmDialog.tsx b/ordinis-admin-ui/src/components/lineage/CascadeConfirmDialog.tsx index fd99be8..cdc6c01 100644 --- a/ordinis-admin-ui/src/components/lineage/CascadeConfirmDialog.tsx +++ b/ordinis-admin-ui/src/components/lineage/CascadeConfirmDialog.tsx @@ -224,7 +224,7 @@ export const CascadeConfirmDialog = ({
@@ -242,7 +242,7 @@ export const CascadeConfirmDialog = ({
diff --git a/ordinis-admin-ui/src/components/lineage/DictionaryHubView.tsx b/ordinis-admin-ui/src/components/lineage/DictionaryHubView.tsx index 4bd20f0..2de8562 100644 --- a/ordinis-admin-ui/src/components/lineage/DictionaryHubView.tsx +++ b/ordinis-admin-ui/src/components/lineage/DictionaryHubView.tsx @@ -181,7 +181,7 @@ export function DictionaryHubView({ detail }: { detail: DictionaryDetail }) { {detail.description}

)} -
+
{detail.bundle} {detail.supportedLocales.join(', ')} {typeof detail.recordCount === 'number' && ( diff --git a/ordinis-admin-ui/src/components/schema/DictionaryEditorDialog.tsx b/ordinis-admin-ui/src/components/schema/DictionaryEditorDialog.tsx index beaf66c..e38bff5 100644 --- a/ordinis-admin-ui/src/components/schema/DictionaryEditorDialog.tsx +++ b/ordinis-admin-ui/src/components/schema/DictionaryEditorDialog.tsx @@ -341,7 +341,7 @@ export const DictionaryEditorDialog = ({ open, mode, onClose, onSuccess }: Props
diff --git a/ordinis-admin-ui/src/components/schema/PropertyEditor.tsx b/ordinis-admin-ui/src/components/schema/PropertyEditor.tsx index 2ea6979..63a6858 100644 --- a/ordinis-admin-ui/src/components/schema/PropertyEditor.tsx +++ b/ordinis-admin-ui/src/components/schema/PropertyEditor.tsx @@ -51,7 +51,7 @@ export const PropertyEditor = ({ return (
- + {t('schema.property')} #{index + 1}
diff --git a/ordinis-admin-ui/src/components/timetravel/TimeTravelPicker.tsx b/ordinis-admin-ui/src/components/timetravel/TimeTravelPicker.tsx index bea7911..721c819 100644 --- a/ordinis-admin-ui/src/components/timetravel/TimeTravelPicker.tsx +++ b/ordinis-admin-ui/src/components/timetravel/TimeTravelPicker.tsx @@ -53,7 +53,7 @@ export function TimeTravelPicker({
- + {t('timeTravel.label')} diff --git a/ordinis-admin-ui/src/routes/audit.tsx b/ordinis-admin-ui/src/routes/audit.tsx index 5709173..2b7dfdf 100644 --- a/ordinis-admin-ui/src/routes/audit.tsx +++ b/ordinis-admin-ui/src/routes/audit.tsx @@ -299,7 +299,7 @@ function ActiveFilterChips({ filters, onRemove }: ActiveFilterChipsProps) { const { t } = useTranslation() return (
- + {t('audit.filter.active')} {filters.map((f) => ( @@ -506,7 +506,7 @@ function AuditRow({ row }: { row: AuditEntry }) {
-
+
{t('audit.diff.before')}
@@ -516,7 +516,7 @@ function AuditRow({ row }: { row: AuditEntry }) {
                 
-
+
{t('audit.diff.after')}
diff --git a/ordinis-admin-ui/src/routes/dictionaries.$name.tsx b/ordinis-admin-ui/src/routes/dictionaries.$name.tsx
index b4025df..27e995d 100644
--- a/ordinis-admin-ui/src/routes/dictionaries.$name.tsx
+++ b/ordinis-admin-ui/src/routes/dictionaries.$name.tsx
@@ -1390,7 +1390,7 @@ function FieldsTabContent({ detail }: { detail: { schemaJson: import('@/api/clie
   return (
     
- + diff --git a/ordinis-admin-ui/src/routes/dictionaries.index.tsx b/ordinis-admin-ui/src/routes/dictionaries.index.tsx index 98c0376..ac7a4f2 100644 --- a/ordinis-admin-ui/src/routes/dictionaries.index.tsx +++ b/ordinis-admin-ui/src/routes/dictionaries.index.tsx @@ -253,7 +253,7 @@ function DictionariesPage() { /> - + {filtered.length}/{data.length} @@ -372,7 +372,7 @@ function DictionariesPage() { {bundle} - + · {items.length} {t('dict.list.records.short')} @@ -482,7 +482,7 @@ const DictCard = ({ d, t }: { d: DictionaryDefinition; t: TFunc }) => { )} {hasFkRow && (
- + {t('dict.list.fk.usedBy', { count: refBy.length })} {refBy.slice(0, MAX_REFBY_CHIPS).map((dep) => ( @@ -509,7 +509,7 @@ const DictCard = ({ d, t }: { d: DictionaryDefinition; t: TFunc }) => { v{d.schemaVersion} {typeof d.recordCount === 'number' && ( - + {t('dict.list.recordCount', { count: d.recordCount })} )} diff --git a/ordinis-admin-ui/src/routes/outbox.tsx b/ordinis-admin-ui/src/routes/outbox.tsx index da58264..900d916 100644 --- a/ordinis-admin-ui/src/routes/outbox.tsx +++ b/ordinis-admin-ui/src/routes/outbox.tsx @@ -165,7 +165,7 @@ function StatCard({ label, value, tone }: StatCardProps) { : 'text-accent' return (
-
+
{label}
{value}
diff --git a/ordinis-admin-ui/src/routes/reviews.tsx b/ordinis-admin-ui/src/routes/reviews.tsx index 14a11d0..bef38b0 100644 --- a/ordinis-admin-ui/src/routes/reviews.tsx +++ b/ordinis-admin-ui/src/routes/reviews.tsx @@ -423,7 +423,7 @@ function ReviewDrawer({ draftId, onClose }: DrawerProps) {
-

+

{t('reviews.drawer.live')}

{liveQ.isLoading && } @@ -439,7 +439,7 @@ function ReviewDrawer({ draftId, onClose }: DrawerProps) { )}
-

+

{t('reviews.drawer.proposed')}

{draft.operation === 'CLOSE' ? ( @@ -463,7 +463,7 @@ function ReviewDrawer({ draftId, onClose }: DrawerProps) {
diff --git a/ordinis-admin-ui/src/routes/webhooks.$id.tsx b/ordinis-admin-ui/src/routes/webhooks.$id.tsx index 8c07cfc..8e0da29 100644 --- a/ordinis-admin-ui/src/routes/webhooks.$id.tsx +++ b/ordinis-admin-ui/src/routes/webhooks.$id.tsx @@ -169,7 +169,7 @@ function WebhookDetailPage() { {data.scopeFilter.map((s) => ( {s} @@ -394,7 +394,7 @@ function TestResultAlert({
{result.httpStatus != null && (
- + HTTP {result.httpStatus} @@ -402,7 +402,7 @@ function TestResultAlert({ )} {result.latencyMs != null && (
- + {t('webhooks.test.latency')} {result.latencyMs} ms @@ -421,7 +421,7 @@ function TestResultAlert({ function InfoRow({ label, children }: { label: string; children: React.ReactNode }) { return (
-
+
{label}
{children}
diff --git a/ordinis-admin-ui/src/routes/webhooks.index.tsx b/ordinis-admin-ui/src/routes/webhooks.index.tsx index f0014f0..a41c6d4 100644 --- a/ordinis-admin-ui/src/routes/webhooks.index.tsx +++ b/ordinis-admin-ui/src/routes/webhooks.index.tsx @@ -182,7 +182,7 @@ function ScopeChips({ scopes }: { scopes?: DataScope[] | null }) { {scopes.map((s) => ( diff --git a/ordinis-admin-ui/src/styles.css b/ordinis-admin-ui/src/styles.css index 9b4c9d9..d5d2563 100644 --- a/ordinis-admin-ui/src/styles.css +++ b/ordinis-admin-ui/src/styles.css @@ -146,11 +146,36 @@ --font-mono: 'JetBrains Mono', 'SF Mono', monospace; --font-display: 'Tektur', 'Inter', sans-serif; + /* Font sizes per design_handoff_ordinis_mdm/README.md spec. + * Override Tailwind defaults так чтобы существующие utility classes + * автоматически соответствовали handoff: + * text-sm : 13px (workhorse — body, buttons, tabs) + * text-xs : 12px (default, без изменений — secondary meta) + * text-2xs : 11px (custom — IDs, dates, table mono meta) + * Tektur caps 10.5px → используй .cap или text-cap utility (отдельно). + * Table cells 12.5px / page titles 17px / modal titles 22px — explicit + * через text-[Npx] arbitrary value по месту. */ + --text-sm: 13px; + --text-sm--line-height: 1.4; + --text-2xs: 11px; + --text-2xs--line-height: 1.35; + --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; } +/* Tektur caps utility — handoff 10.5px uppercase tracking 0.10em. + * Codemod target: replace `text-2xs uppercase tracking-[0.10em]` → `text-cap`. */ +@utility text-cap { + font-family: var(--font-display); + font-size: 10.5px; + line-height: 1; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.10em; +} + html, body, #root { height: 100%; } diff --git a/ordinis-admin-ui/src/ui/components/input.tsx b/ordinis-admin-ui/src/ui/components/input.tsx index 9979242..60d4dcf 100644 --- a/ordinis-admin-ui/src/ui/components/input.tsx +++ b/ordinis-admin-ui/src/ui/components/input.tsx @@ -56,7 +56,7 @@ export const Input = React.forwardRef( {label && (
name type