AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Ember.js 애플리케이션용 현대적이고 접근성 높은 확장 가능한 컴포넌트 라이브러리로 Tailwind CSS로 높은 스타일 커스터마이징을 지원
A modern, accessible, and extensible component library for Ember.js applications. Built with Tailwind CSS for highly customizable styling.
개발 도구TypeScript · JavaScriptGitHub @josemarluedke온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Component Library for Ember Octane apps
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Under active development.
A modern, accessible, and extensible component library for Ember.js, built with Tailwind Variants for highly customizable styling.README 전문 보기 ↗Under active development.
A modern, accessible, and extensible component library for Ember.js, built with Tailwind Variants for highly customizable styling.
Visit frontile.dev to read the docs and see live demos.
import Component from '@glimmer/component';
import { Button } from 'frontile';
export default class Example extends Component {
onClick = () => {
alert('Button clicked!');
};
<template>
<Button @intent='primary' @size='lg' @onClick={{this.onClick}}>
Click Me
</Button>
</template>
}
import Component from '@glimmer/component';
import { Select } from 'frontile';
const options = [
{ key: 'apple', label: 'Apple' },
{ key: 'banana', label: 'Banana' },
{ key: 'cherry', label: 'Cherry' }
];
export default class Example extends Component {
selectedKey = null;
onSelectionChange = (key) => {
this.selectedKey = key;
};
<template>
<Select
@items={{options}}
@selectedKey={{this.selectedKey}}
@onSelectionChange={{this.onSelectionChange}}
@isFilterable={{true}}
/>
</template>
}
Frontile is built on Tailwind CSS, a utility-first CSS framework that allows you to quickly style components without writing custom styles.
By default, Frontile components come with sensible defaults using Tailwind classes, but you can override styles using Tailwind’s utility classes.
<Button @class="bg-blue-500 text-white hover:bg-blue-600">
Custom Styled Button
</Button>
For more structured and reusable styling, Frontile uses Tailwind Variants. This approach makes it easier to manage component styling, support variants, and apply conditional styles.
import { registerCustomStyles, tv } from '@frontile/theme';
registerCustomStyles({
button: tv({
base: 'rounded px-4 py-2 font-semibold transition-all',
variants: {
intent: {
primary: 'bg-blue-500 text-white hover:bg-blue-600',
secondary: 'bg-gray-500 text-white hover:bg-gray-600'
},
size: {
sm: 'text-sm py-1 px-2',
lg: 'text-lg py-3 px-6'
}
},
defaultVariants: {
intent: 'primary',
size: 'lg'
}
})
});
Frontile components internally use Tailwind Variants, but you can override them by passing @classes. Class conflicts are handled automatically by Tailwind Variants.
import { Avatar } from 'frontile';
import { hash } from '@ember/helper';
<template>
<Avatar
@name='Jon Snow'
@classes={{hash
base='bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white'
}}
/>
</template>
Clone the repository:
git clone https://github.com/josemarluedke/frontile.git
cd frontile
pnpm install
Run the test suite:
pnpm test
Run the test app:
pnpm start
Build all packages:
pnpm build
This project is licensed under the MIT License.