AvanzaCast/shared/components/modal-parts/ModalButton.module.css
Cesar Mendivil e43686e36d feat(modal-parts): add modular components for modal UI
- Introduced ModalDestinationButton for destination selection with customizable icons and labels.
- Added ModalInput for text input with optional character counter.
- Implemented ModalLink for reusable links styled as underlined text.
- Created ModalPlatformCard for platform selection with badges.
- Developed ModalRadioGroup for radio button groups with custom styling.
- Added ModalSection for grouping modal content with optional labels.
- Implemented ModalSelect for dropdown selections with custom styling.
- Created ModalShareButtons for sharing options via Gmail, Email, and Messenger.
- Developed ModalTextarea for multi-line text input with character counter.
- Introduced ModalToggle for toggle switches with optional help text and links.
- Updated README.md with component descriptions, usage examples, and design guidelines.
- Added index.ts for centralized exports of modal components.
2025-11-06 00:32:08 -07:00

100 lines
1.8 KiB
CSS

/* ModalButton - StreamYard style buttons */
.button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 8px 16px;
border-radius: 4px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.15s;
white-space: nowrap;
border: 1px solid transparent;
}
.button:disabled {
cursor: not-allowed;
opacity: 0.5;
}
.icon {
display: flex;
align-items: center;
font-size: 18px;
}
/* Primary variant - Blue background */
.primary {
background-color: #1a73e8;
color: white;
border-color: #1a73e8;
}
.primary:hover:not(:disabled) {
background-color: #1765cc;
border-color: #1765cc;
}
/* Secondary variant - White with border */
.secondary {
background-color: #ffffff;
color: #5f6368;
border-color: #dadce0;
}
.secondary:hover:not(:disabled) {
background-color: #f8f9fa;
border-color: #bdc1c6;
}
/* Outlined variant - Transparent with border */
.outlined {
background-color: transparent;
color: #5f6368;
border-color: #dadce0;
}
.outlined:hover:not(:disabled) {
background-color: #f8f9fa;
border-color: #bdc1c6;
color: #202124;
}
/* Dark mode */
[data-theme="dark"] .primary {
background-color: #8ab4f8;
color: #202124;
border-color: #8ab4f8;
}
[data-theme="dark"] .primary:hover:not(:disabled) {
background-color: #aecbfa;
border-color: #aecbfa;
}
[data-theme="dark"] .secondary {
background-color: #3c4043;
color: #e8eaed;
border-color: #5f6368;
}
[data-theme="dark"] .secondary:hover:not(:disabled) {
background-color: #5f6368;
border-color: #80868b;
}
[data-theme="dark"] .outlined {
background-color: transparent;
color: #9aa0a6;
border-color: #5f6368;
}
[data-theme="dark"] .outlined:hover:not(:disabled) {
background-color: #3c4043;
border-color: #80868b;
color: #e8eaed;
}