Token-driven component
primitives, production-ready.
Reusable CSS classes extracted from aegisx-ui production source. Copy
tokens/css/components.css alongside tokens.css into your Angular app —
every component reads --ax-* tokens, so theme flips cascade automatically.
Button
Five variants × three sizes × four states. All transitions use --ax-duration-fast + --ax-easing-easeOut.
Variants
Sizes
States
Input
Form controls with consistent focus ring (--ax-brand-faint 3px) and error state.
Card
Surface container with three elevation modes. Use for grouped content, list items, dashboard tiles.
Flat card
Default border, no shadow
Elevated card
elevation-1
Floating card
elevation-3 · menus, popovers
Alert · Banner
Inline message for status, validation, or system notices. Pairs role faint bg + emphasis text + default accent.
Patient record saved
Updated by Dr. Chaiyaphum · 2 minutes ago.
Drug interaction possible
Warfarin + Aspirin — review anticoagulant protocol before dispense.
NHSO claim rejected
Missing ICD-10 secondary code. Edit claim HN-44821 to resubmit.
Scheduled downtime
System maintenance this Sunday 02:00–03:00 ICT.
Badge
Three styles × five roles = 15 combinations. Pick based on visual weight needed.
Solid
Soft
Outline
Chip
Removable tag for filters, selected items, multi-select.
Dialog · Modal
Static preview of the dialog structure — wire up focus trap and role="dialog" in your framework.
Discharge patient?
Toast
Ephemeral notification with role-coded left border.
Avatar
Initials or image. Four sizes + role-coded variants.
Status dot
Inline indicator. Pair with text — never rely on color alone.
Tab bar
Section navigation. Use aria-selected or .active for the current tab.
Breadcrumb
Hierarchy trail.
Pagination
Table companion. Use aria-current="page" for active.
Progress bar
Determinate progress. Role-coded variants for status.
Spinner
Indeterminate loading. Three sizes.
Toggle
Boolean on/off switch.
Tooltip
CSS-only via data-tooltip attribute. Hover the buttons below.
Stat card
Dashboard KPI tile. Number + label + trend.
Key-value
Patient record layout. Striped variant via .ax-kv--striped.
Empty state
No data, no results. Icon + title + description + optional CTA.
ไม่พบผลการค้นหา
ลองเปลี่ยนคำค้นหาหรือลบตัวกรองบางรายการ
Divider
Section separator. Subtle variant for tight spacing.
Subtle divider (--sm)
Default divider
Table
Untitled UI pattern. text-xs uppercase header, text-sm body, hover row.
Checkbox
Styled checkbox. Hides native input, uses .ax-checkbox__box for visual.
Radio
Styled radio buttons.
Select
Native <select> with styled wrapper.
Search input
Input with icon prefix via .ax-search wrapper.
Kbd
Keyboard shortcut badge.
Code block + tabs
Syntax-highlighted code with language tabs.
Field display
Read-only label:value. Mono variant for IDs and codes.
Image preview
Card with hover overlay for zoom/view action.
List
Generic styled list. Bordered variant with status dots.
- Cardiology
- Orthopedics
- Radiology
- Pathology
Circular progress
CSS SVG donut ring. Set stroke-dashoffset for percentage.
Segmented progress
Multi-step bar. Mark segments .done or .active.
Loading bar
Top-of-page indeterminate bar. Fixed position, z-index toast.
Sidebar nav
Vertical app navigation. Three variants: default (light), dark (navy), rail (icon-only collapsed).
Default (light)
Dark (production style)
Rail (icon-only collapsed)
Tab pills
Pill-shaped tabs (vs underline .ax-tabs).
Accordion
Expansion panel using native <details>.
Patient information
Diagnosis history
Medication
Skeleton
Loading placeholder. No shimmer (per design principles).
Banner
Full-width dismissable notification.
Notification counter
Badge count on avatar or icon.
Section card
Card with labeled header section.
Select card
Selectable option. Use with radio logic.
UC (บัตรทอง)
NHSO universal coverage
SSO (ประกันสังคม)
Social Security Office
Self-pay
Cash / private insurance
Form section
Grouped fields with heading. Auto-grid for responsive columns.
Patient demographics
Basic identification information.
Contact
OTP input
Digit box grid for verification codes.
Error state
Like empty state but error-themed.
เกิดข้อผิดพลาด
ไม่สามารถเชื่อมต่อกับ HIS ได้ กรุณาลองใหม่อีกครั้ง
ERR_CONNECTION_TIMEOUTLoading button
Button with inline spinner via .ax-button--loading.
Master-detail
List + detail split layout. Active item highlighted.
สมชาย ประเสริฐ
HN-44821 · IPD 5A · Bed 12
Command palette
Search modal visual shell. Wire keyboard nav in framework.
Launcher card
App module launcher grid. Works with diamond icons.
Drawer
Slide-out panel (static preview — normally fixed positioned).
Page header
Title + breadcrumb + action buttons bar.
OPD Queue
วันนี้ 284 ราย · 12 รอตรวจ
Timeline
Vertical event log with status dots.
File upload
Dropzone with hover highlight.
Splash screen
Full-page loading screen (static preview).
Button group
Joined buttons sharing borders. Untitled UI pattern.
With icons (data-icon-only)
Slider
Styled range input. Untitled UI thumb pattern.
Tag input
Inline tags with remove button + text input. Use for multi-select, tagging.
Featured icon
Reusable large icon circle (Untitled UI pattern). Use in empty states, headers, cards.
Sizes (sm → xl)
Composition · Login form
Primitives composed into a real screen.
Sign in to AegisX
Hospital staff portal