231 lines
11 KiB
C#
231 lines
11 KiB
C#
namespace Lattice.Themes.Core.Tokens;
|
||
|
||
/// <summary>
|
||
/// Статические ключи для ресурсов Lattice Framework.
|
||
/// Используются в XAML через {DynamicResource} или {ThemeResource}.
|
||
/// </summary>
|
||
public static class LatticeTokens
|
||
{
|
||
// ============ Цвета (Colors) ============
|
||
|
||
// Основные цвета
|
||
public const string ColorPrimary = "Lattice.Color.Primary";
|
||
public const string ColorSecondary = "Lattice.Color.Secondary";
|
||
public const string ColorTertiary = "Lattice.Color.Tertiary";
|
||
|
||
// Акцентные цвета
|
||
public const string ColorAccent = "Lattice.Color.Accent";
|
||
public const string ColorAccentLight = "Lattice.Color.Accent.Light";
|
||
public const string ColorAccentDark = "Lattice.Color.Accent.Dark";
|
||
public const string ColorAccentAction = "Lattice.Color.Accent.Action";
|
||
|
||
// Фоновые цвета
|
||
public const string ColorBackgroundPrimary = "Lattice.Color.Background.Primary";
|
||
public const string ColorBackgroundSecondary = "Lattice.Color.Background.Secondary";
|
||
public const string ColorBackgroundTertiary = "Lattice.Color.Background.Tertiary";
|
||
public const string ColorBackgroundQuaternary = "Lattice.Color.Background.Quaternary";
|
||
|
||
// Текстовые цвета
|
||
public const string ColorTextPrimary = "Lattice.Color.Text.Primary";
|
||
public const string ColorTextSecondary = "Lattice.Color.Text.Secondary";
|
||
public const string ColorTextDisabled = "Lattice.Color.Text.Disabled";
|
||
public const string ColorTextOnAccent = "Lattice.Color.Text.OnAccent";
|
||
|
||
// Граничные цвета
|
||
public const string ColorBorderPrimary = "Lattice.Color.Border.Primary";
|
||
public const string ColorBorderSecondary = "Lattice.Color.Border.Secondary";
|
||
public const string ColorBorderAccent = "Lattice.Color.Border.Accent";
|
||
|
||
// Состояния
|
||
public const string ColorSuccess = "Lattice.Color.Success";
|
||
public const string ColorWarning = "Lattice.Color.Warning";
|
||
public const string ColorError = "Lattice.Color.Error";
|
||
public const string ColorInfo = "Lattice.Color.Info";
|
||
|
||
// ============ Кисти (Brushes) ============
|
||
|
||
// Основные кисти
|
||
public const string BrushPrimary = "Lattice.Brush.Primary";
|
||
public const string BrushSecondary = "Lattice.Brush.Secondary";
|
||
public const string BrushTertiary = "Lattice.Brush.Tertiary";
|
||
|
||
// Акцентные кисти
|
||
public const string BrushAccent = "Lattice.Brush.Accent";
|
||
public const string BrushAccentLight = "Lattice.Brush.Accent.Light";
|
||
public const string BrushAccentDark = "Lattice.Brush.Accent.Dark";
|
||
public const string BrushAccentAction = "Lattice.Brush.Accent.Action";
|
||
|
||
// Фоновые кисти
|
||
public const string BrushBackgroundPrimary = "Lattice.Brush.Background.Primary";
|
||
public const string BrushBackgroundSecondary = "Lattice.Brush.Background.Secondary";
|
||
public const string BrushBackgroundTertiary = "Lattice.Brush.Background.Tertiary";
|
||
public const string BrushBackgroundQuaternary = "Lattice.Brush.Background.Quaternary";
|
||
|
||
// Текстовые кисти
|
||
public const string BrushTextPrimary = "Lattice.Brush.Text.Primary";
|
||
public const string BrushTextSecondary = "Lattice.Brush.Text.Secondary";
|
||
public const string BrushTextDisabled = "Lattice.Brush.Text.Disabled";
|
||
public const string BrushTextOnAccent = "Lattice.Brush.Text.OnAccent";
|
||
|
||
// Граничные кисти
|
||
public const string BrushBorderPrimary = "Lattice.Brush.Border.Primary";
|
||
public const string BrushBorderSecondary = "Lattice.Brush.Border.Secondary";
|
||
public const string BrushBorderAccent = "Lattice.Brush.Border.Accent";
|
||
|
||
// Кисти состояний
|
||
public const string BrushSuccess = "Lattice.Brush.Success";
|
||
public const string BrushWarning = "Lattice.Brush.Warning";
|
||
public const string BrushError = "Lattice.Brush.Error";
|
||
public const string BrushInfo = "Lattice.Brush.Info";
|
||
|
||
// Кисти для перетаскивания
|
||
public const string BrushDragOverlay = "Lattice.Brush.Drag.Overlay";
|
||
public const string BrushDropPreview = "Lattice.Brush.Drop.Preview";
|
||
public const string BrushDropValid = "Lattice.Brush.Drop.Valid";
|
||
public const string BrushDropInvalid = "Lattice.Brush.Drop.Invalid";
|
||
|
||
// Кисти для панелей и разделителей
|
||
public const string BrushPanelBorder = "Lattice.Brush.Panel.Border";
|
||
public const string BrushSplitterNormal = "Lattice.Brush.Splitter.Normal";
|
||
public const string BrushSplitterHover = "Lattice.Brush.Splitter.Hover";
|
||
|
||
// ============ Геометрия (Geometry) ============
|
||
|
||
public const string SizeSplitterWidth = "Lattice.Size.Splitter.Width";
|
||
|
||
// Радиусы скругления
|
||
public const string CornerRadiusNone = "Lattice.CornerRadius.None";
|
||
public const string CornerRadiusSmall = "Lattice.CornerRadius.Small";
|
||
public const string CornerRadiusMedium = "Lattice.CornerRadius.Medium";
|
||
public const string CornerRadiusLarge = "Lattice.CornerRadius.Large";
|
||
public const string CornerRadiusXLarge = "Lattice.CornerRadius.XLarge";
|
||
public const string CornerRadiusCircle = "Lattice.CornerRadius.Circle";
|
||
public const string CornerRadiusPanel = "Lattice.CornerRadius.Panel";
|
||
|
||
// Отступы
|
||
public const string SpacingNone = "Lattice.Spacing.None";
|
||
public const string SpacingXSmall = "Lattice.Spacing.XSmall";
|
||
public const string SpacingSmall = "Lattice.Spacing.Small";
|
||
public const string SpacingMedium = "Lattice.Spacing.Medium";
|
||
public const string SpacingLarge = "Lattice.Spacing.Large";
|
||
public const string SpacingXLarge = "Lattice.Spacing.XLarge";
|
||
public const string SpacingXXLarge = "Lattice.Spacing.XXLarge";
|
||
public const string SpacingPanel = "Lattice.Spacing.Panel";
|
||
|
||
// Толщины границ
|
||
public const string BorderThicknessNone = "Lattice.BorderThickness.None";
|
||
public const string BorderThicknessThin = "Lattice.BorderThickness.Thin";
|
||
public const string BorderThicknessMedium = "Lattice.BorderThickness.Medium";
|
||
public const string BorderThicknessThick = "Lattice.BorderThickness.Thick";
|
||
public const string BorderThicknessPanel = "Lattice.BorderThickness.Panel";
|
||
|
||
// Размеры теней
|
||
public const string ShadowDepthNone = "Lattice.Shadow.Depth.None";
|
||
public const string ShadowDepthSmall = "Lattice.Shadow.Depth.Small";
|
||
public const string ShadowDepthMedium = "Lattice.Shadow.Depth.Medium";
|
||
public const string ShadowDepthLarge = "Lattice.Shadow.Depth.Large";
|
||
|
||
// ============ Текстовые стили (Typography) ============
|
||
|
||
// Размеры шрифтов
|
||
public const string FontSizeCaption = "Lattice.FontSize.Caption";
|
||
public const string FontSizeBody = "Lattice.FontSize.Body";
|
||
public const string FontSizeBodyStrong = "Lattice.FontSize.BodyStrong";
|
||
public const string FontSizeSubtitle = "Lattice.FontSize.Subtitle";
|
||
public const string FontSizeTitle = "Lattice.FontSize.Title";
|
||
public const string FontSizeTitleLarge = "Lattice.FontSize.TitleLarge";
|
||
public const string FontSizeDisplay = "Lattice.FontSize.Display";
|
||
|
||
// Высота строк
|
||
public const string LineHeightTight = "Lattice.LineHeight.Tight";
|
||
public const string LineHeightNormal = "Lattice.LineHeight.Normal";
|
||
public const string LineHeightRelaxed = "Lattice.LineHeight.Relaxed";
|
||
|
||
// Веса шрифтов
|
||
public const string FontWeightLight = "Lattice.FontWeight.Light";
|
||
public const string FontWeightNormal = "Lattice.FontWeight.Normal";
|
||
public const string FontWeightMedium = "Lattice.FontWeight.Medium";
|
||
public const string FontWeightSemibold = "Lattice.FontWeight.Semibold";
|
||
public const string FontWeightBold = "Lattice.FontWeight.Bold";
|
||
|
||
// ============ Анимации (Animations) ============
|
||
|
||
// Длительности
|
||
public const string DurationInstant = "Lattice.Duration.Instant";
|
||
public const string DurationFast = "Lattice.Duration.Fast";
|
||
public const string DurationNormal = "Lattice.Duration.Normal";
|
||
public const string DurationSlow = "Lattice.Duration.Slow";
|
||
|
||
// Кривые анимаций
|
||
public const string EasingLinear = "Lattice.Easing.Linear";
|
||
public const string EasingStandard = "Lattice.Easing.Standard";
|
||
public const string EasingStandardAccelerate = "Lattice.Easing.Standard.Accelerate";
|
||
public const string EasingStandardDecelerate = "Lattice.Easing.Standard.Decelerate";
|
||
public const string EasingEmphasized = "Lattice.Easing.Emphasized";
|
||
|
||
// ============ Разное (Miscellaneous) ============
|
||
|
||
// Прозрачности
|
||
public const string OpacityDisabled = "Lattice.Opacity.Disabled";
|
||
public const string OpacityOverlay = "Lattice.Opacity.Overlay";
|
||
public const string OpacityDrag = "Lattice.Opacity.Drag";
|
||
public const string OpacityDropPreview = "Lattice.Opacity.DropPreview";
|
||
|
||
// Z-индексы
|
||
public const string ZIndexDefault = "Lattice.ZIndex.Default";
|
||
public const string ZIndexOverlay = "Lattice.ZIndex.Overlay";
|
||
public const string ZIndexDialog = "Lattice.ZIndex.Dialog";
|
||
public const string ZIndexTooltip = "Lattice.ZIndex.Tooltip";
|
||
public const string ZIndexDrag = "Lattice.ZIndex.Drag";
|
||
public const string ZIndexDropPreview = "Lattice.ZIndex.DropPreview";
|
||
|
||
// Размеры иконок
|
||
public const string IconSizeSmall = "Lattice.IconSize.Small";
|
||
public const string IconSizeMedium = "Lattice.IconSize.Medium";
|
||
public const string IconSizeLarge = "Lattice.IconSize.Large";
|
||
|
||
// ============ Вспомогательные методы ============
|
||
|
||
/// <summary>
|
||
/// Получает все токены как коллекцию ключ-значение.
|
||
/// </summary>
|
||
public static IReadOnlyDictionary<string, string> GetAllTokens()
|
||
{
|
||
var fields = typeof(LatticeTokens).GetFields(
|
||
System.Reflection.BindingFlags.Public |
|
||
System.Reflection.BindingFlags.Static);
|
||
|
||
var tokens = new Dictionary<string, string>();
|
||
|
||
foreach (var field in fields)
|
||
{
|
||
if (field.FieldType == typeof(string) && field.IsLiteral)
|
||
{
|
||
tokens[field.Name] = (string)field.GetValue(null)!;
|
||
}
|
||
}
|
||
|
||
return tokens;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Проверяет, существует ли токен с указанным ключом.
|
||
/// </summary>
|
||
public static bool ContainsToken(string key)
|
||
{
|
||
return GetAllTokens().ContainsKey(key);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Получает токен по его имени (не по значению).
|
||
/// </summary>
|
||
public static string? GetTokenByName(string name)
|
||
{
|
||
var field = typeof(LatticeTokens).GetField(
|
||
name,
|
||
System.Reflection.BindingFlags.Public |
|
||
System.Reflection.BindingFlags.Static);
|
||
|
||
return field?.GetValue(null) as string;
|
||
}
|
||
} |