AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
SCSS와 BEM 구조로 만든 가볍고 데이터 중심 관리자 프레임워크, RTL 지원·다중 테마·반응형 그리드 제공
Lightweight, data-focused admin framework built with SCSS and BEM architecture (pa-* prefix). Features RTL support, multiple themes (dark, corporate, minimal, and more), responsive grid system, and 25
개발 도구HTML · SCSSGitHub @Keenmate온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Lightweight, data-focused admin framework built with SCSS and BEM architecture (pa-* prefix). Features RTL support, multiple themes (dark, corporate, minimal, and more), responsive grid system, and 25+ components optimized for dashboards and data-heavy apps.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Lightweight, data-focused HTML/CSS admin framework built with SCSS and a comprehensive component system.
• Live Demo — demo.pureadmin.io (try every theme in the browser)
• Main Site — pureadmin.io (themes catalog, CLI docs, project templates)
• pureadmin CLI — npm (npx pureadmin create, npx pureadmin themes add)README 전문 보기 ↗Lightweight, data-focused HTML/CSS admin framework built with SCSS and a comprehensive component system.
pureadmin CLI — npm (npx pureadmin create, npx pureadmin themes add)pa- prefixed classes| Package | Version | Description |
|---|---|---|
| @keenmate/pure-admin-core | Core framework with default theme | |
| @keenmate/pure-admin-theme-audi | Audi-inspired red theme | |
| @keenmate/pure-admin-theme-corporate | Professional blue/gray theme | |
| @keenmate/pure-admin-theme-dark | Dark theme with color variants | |
| @keenmate/pure-admin-theme-express | Bold yellow/red logistics theme | |
| @keenmate/pure-admin-theme-minimal | Clean minimal theme |
npm install @keenmate/pure-admin-core
<link rel="stylesheet" href="node_modules/@keenmate/pure-admin-core/dist/css/main.css">
Or with a bundler:
import '@keenmate/pure-admin-core/dist/css/main.css';
npm install @keenmate/pure-admin-theme-audi
<link rel="stylesheet" href="node_modules/@keenmate/pure-admin-theme-audi/dist/audi.css">
// Override variables before importing
$primary-color: #your-color;
$sidebar-width: 280px;
// Import the framework
@import '@keenmate/pure-admin-core/src/scss/main';
Pure Admin includes a comprehensive set of components:
<div class="pa-card">
<div class="pa-card__header">
<h3>Card Title</h3>
</div>
<div class="pa-card__body">
<p>Card content goes here.</p>
</div>
<div class="pa-card__footer">
<button class="pa-btn pa-btn--primary">Save</button>
</div>
</div>
Flexible grid system with responsive breakpoints:
<div class="pa-row">
<div class="pa-col-md-50">Half width on medium+</div>
<div class="pa-col-md-50">Half width on medium+</div>
</div>
.pa-col-{5-100} - Percentage widths (5% increments).pa-col-1-2, .pa-col-1-3, .pa-col-1-4 - Fraction widths.pa-col-sm-*, .pa-col-md-*, .pa-col-lg-*, .pa-col-xl-* - Responsive variantsFull right-to-left language support. Simply add dir="rtl" to your HTML element:
<html dir="rtl" lang="ar">
All components automatically mirror. Use logical utilities for RTL-aware spacing:
.ms-* / .me-* - margin-inline-start/end.ps-* / .pe-* - padding-inline-start/end.text-start / .text-end - logical text alignmentHeight and flex utilities for dynamic layouts:
<!-- Full height card in flex container -->
<div class="d-flex flex-column h-screen">
<div class="pa-card flex-1 d-flex flex-column">
<div class="pa-card__header">Fixed Header</div>
<div class="pa-card__body flex-1 overflow-auto">Scrollable Content</div>
</div>
</div>
.h-full, .h-screen - 100% / 100vh height.min-h-full, .min-h-screen - Minimum heights.flex-1, .flex-auto - Flex grow/shrink utilities.flex-grow, .flex-shrink-0 - Individual flex propertiesThemes support light/dark modes via CSS classes on <body>:
<body class="pc-mode-dark">
The Dark theme also supports color accent variants:
<body class="pa-color-blue">
<!-- or pa-color-green, pa-color-red -->
The mode/variant classes go on <body>, not <html>. CSS custom-property values are inherited parent → child only, so reading vars from document.documentElement (<html>) returns the :root (dark-default) values regardless of which mode is active — the override on <body> never propagates upward. Always read theme vars from document.body:
// ✅ correct — sees the active mode's values
const styles = getComputedStyle(document.body);
const textColor = styles.getPropertyValue('--pa-text-color-1').trim();
// ❌ wrong — reads <html>, misses .pc-mode-light overrides on <body>
getComputedStyle(document.documentElement).getPropertyValue('--pa-text-color-1');
Plain CSS (stylesheets, inline style=) using var(--pa-*) is unaffected — it updates live when the class on <body> changes.
Code that snapshots CSS vars at draw time (D3 charts, canvas, baked SVG fills, web components reading attributes) needs to know when the user toggles mode or variant. Whatever code flips the body class should also dispatch a window event, e.g.:
// Mode toggler
document.body.classList.toggle('pc-mode-dark');
window.dispatchEvent(new CustomEvent('pa:theme-change', { detail: { kind: 'mode' } }));
Charts and other snapshot-style code listen and re-render:
function renderChart() {
const styles = getComputedStyle(document.body);
const accent = styles.getPropertyValue('--pa-accent').trim();
// ...draw chart with `accent`
}
renderChart();
window.addEventListener('pa:theme-change', renderChart);
The demo's settings-panel.js already follows this convention. If you don't re-render, the page will look correct except for the snapshotted nodes, which keep stale colors until a hard reload.
The demo server runs in Docker with themes baked in at build time. Themes not included in the image are downloaded on-demand from pureadmin.io when a user requests them.
make docker-build
docker compose up -d
Configure which themes are baked in via the THEMES_URL build arg in the Dockerfile. Additional themes are fetched lazily at runtime with a 10-minute negative cache for failed lookups.
# Clone the repository
git clone https://github.com/KeenMate/pure-admin.git
cd pure-admin
# Install dependencies and build
make setup
# Build all packages (core + themes)
make build-all
# Run demo server
make dev
# Open http://localhost:3000
make setup # Install dependencies
make build # Build core CSS
make build-all # Build core + all themes
make dev # Development mode with demo server
make watch # Watch for changes
make clean # Clean dist directories
make publish # Publish to npm
If you don't have Make installed, use npm directly:
npm install # Install dependencies
npm run build:all # Build everything
npm run dev # Development mode
pure-admin/
├── packages/
│ ├── core/ # @keenmate/pure-admin-core
│ ├── theme-audi/ # @keenmate/pure-admin-theme-audi
│ ├── theme-corporate/
│ ├── theme-dark/
│ ├── theme-express/
│ └── theme-minimal/
├── demo/ # Demo site (localhost:3000)
└── docs/ # Documentation
packages/core/snippets/ for copy-paste examplespackages/core/src/scss/variables/Contributions are welcome! Please read our contributing guidelines before submitting a PR.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - see the LICENSE file for details.
Built with care by KeenMate.