-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementace tlačítek v rámci design systému #65
Comments
muzu to vzit |
Super! ❤️ ... Přiradil jsem tě k issue. |
ok, po nějaké době kódování jsem si uvědomil, že rozhraní komponent je docela jednoduché, ale implementace stylu roste exponenciálně u každé výjimky stylu. Důvodem je, že toto jednoduché rozhraní nás přimělo implementovat polymorfní způsob, jak aplikovat styly. Rozhodně se mi to nelíbí a další řešení, které mi přijde na mysl, je oddělit Button a Odkazy sémanticky a podle stylu. Bude to tedy 4 komponenty:
uvidime |
Na kód jsem nekoukal, ale šachovat se 4 komponentami mi přijde nepříliš šťastné. Nemůže to být jedna komponenta, v tomto duchu? interface ButtonCommonProps {
size?: 'small' | 'base' | 'md' | 'lg' // base default
variant?: 'primary' | 'secondary' | 'text' | 'cta' // 'primary' default, 'text' default when button has asLink
// cokoliv dalšího vás napadne... třeba 'spacing'
}
interface ButtonButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, ButtonCommonProps {
asLink?: never
}
interface ButtonLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement>, ButtonCommonProps {
asLink: true
}
type ButtonProps = ButtonButtonProps | ButtonLinkProps Použití: // Tlačítko se sémantikou odkazu (takže <a> tag)
<Button asLink href="https://github.com/"></Button>
// Tlačítko se sémantikou odkazu, vypadající jako tlačítko
<Button asLink type="primary" href="https://github.com/"></Button>
// Obyčejné tlačítko, takže <button>
<Button></Button>
// Tlačítko vypadající jako text, stále <button>
<Button variant="text"></Button> Plus dopsat base styly pro obyčejné odkazy (takže jako |
Technologie: React, TypeScript, Gatsby
V rámci #64
Vytvořit stateless komponentu pro tlačítko podle vizuálního stylu >Č.D. Rozhraní komponenty je otevřené, ale představuji si mít něco jako:
Na co nezapomenout:
rework
Figma: link
V případě nejasností nebojte se na mne obrátit. 🙂
The text was updated successfully, but these errors were encountered: