AvanzaCast/shared/components/modal-parts/ModalDestinationButton.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

84 lines
1.3 KiB
CSS

/* ModalDestinationButton - StreamYard style destination selector */
.button {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 0;
background: none;
border: none;
cursor: pointer;
transition: opacity 0.15s;
}
.button:hover {
opacity: 0.8;
}
.iconContainer {
position: relative;
width: 48px;
height: 48px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background-color: #f1f3f4;
transition: background-color 0.15s;
}
.button:hover .iconContainer {
background-color: #e8eaed;
}
.iconContainer svg,
.iconContainer img {
width: 24px;
height: 24px;
}
.badge {
position: absolute;
bottom: -2px;
right: -2px;
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background-color: #ffffff;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}
.badge svg,
.badge img {
width: 16px;
height: 16px;
}
.label {
color: #5f6368;
font-size: 13px;
font-weight: 400;
text-align: center;
}
/* Dark mode */
[data-theme="dark"] .iconContainer {
background-color: #3c4043;
}
[data-theme="dark"] .button:hover .iconContainer {
background-color: #5f6368;
}
[data-theme="dark"] .badge {
background-color: #3c4043;
}
[data-theme="dark"] .label {
color: #9aa0a6;
}