// Icon component styles
//
// These styles enable icons to inherit theme colors and support
// custom color overrides.
// ============================================
// Base Icon Styles
// ============================================
.hikari-icon {
display: inline-flex;
align-items: center;
justify-content: center;
// Default: inherit text color from theme
color: var(--hi-color-text-primary);
// SVG inherits color; fill/stroke controlled by each icon's inline attributes
svg {
width: 100%;
height: 100%;
// MDI fill-based icons set fill="currentColor" in their SVG data
// Lucide/Feather stroke-based icons set stroke="currentColor" + fill="none"
// We must NOT override these here
}
}
// ============================================
// Icon Size Variants
// ============================================
.hikari-icon-16 {
width: 1rem;
height: 1rem;
}
.hikari-icon-20 {
width: 1.25rem;
height: 1.25rem;
}
.hikari-icon-24 {
width: 1.5rem;
height: 1.5rem;
}
.hikari-icon-32 {
width: 2rem;
height: 2rem;
}
.hikari-icon-40 {
width: 2.5rem;
height: 2.5rem;
}
.hikari-icon-48 {
width: 3rem;
height: 3rem;
}
.hikari-icon-64 {
width: 4rem;
height: 4rem;
}
// ============================================
// Icon Color Variants
// ============================================
// Use theme primary color
.hikari-icon-primary {
color: var(--hi-color-primary);
}
// Use theme secondary color
.hikari-icon-secondary {
color: var(--hi-color-secondary);
}
// Use theme accent color
.hikari-icon-accent {
color: var(--hi-color-accent);
}
// Use theme success color
.hikari-icon-success {
color: var(--hi-color-success);
}
// Use theme warning color
.hikari-icon-warning {
color: var(--hi-color-warning);
}
// Use theme danger color
.hikari-icon-danger {
color: var(--hi-color-danger);
}
// Use secondary text color
.hikari-icon-muted {
color: var(--hi-color-text-secondary);
}
// ============================================
// Transitions
// ============================================
.hikari-icon-transition {
transition: color 150ms ease-in-out;
svg path,
svg circle,
svg rect,
svg ellipse,
svg polygon,
svg polyline,
svg line {
transition: fill 150ms ease-in-out, stroke 150ms ease-in-out;
}
}