feat(ui): add Button, Modal, Spinner, Toast, and Tooltip components with styles
All checks were successful
Build and Release / build-and-release (push) Successful in 13m12s
All checks were successful
Build and Release / build-and-release (push) Successful in 13m12s
- Implemented Button component with various props for customization. - Created Modal component with header, content, and footer subcomponents. - Added Spinner component for loading indicators. - Developed Toast component for displaying notifications. - Introduced Tooltip component for contextual hints with keyboard shortcuts. - Added corresponding CSS modules for styling each component. - Updated index file to export new components. - Configured TypeScript settings for the UI package.
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
.container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 9999px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
background: none;
|
||||
transition-duration: 150ms;
|
||||
transition-property: background-color, color;
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
color: var(--voice-text-strong);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
.buttonUnmuted {
|
||||
background-color: var(--voice-surface-4);
|
||||
color: var(--voice-text-strong);
|
||||
}
|
||||
|
||||
.buttonUnmuted:hover {
|
||||
background-color: var(--voice-surface-5);
|
||||
}
|
||||
|
||||
.buttonMuted {
|
||||
background-color: var(--voice-status-danger-bg-solid);
|
||||
color: var(--voice-status-danger);
|
||||
}
|
||||
|
||||
.buttonMuted:hover {
|
||||
background-color: var(--voice-status-danger-bg-strong-solid);
|
||||
}
|
||||
|
||||
.buttonCameraOn,
|
||||
.buttonScreenShareOn {
|
||||
background-color: var(--voice-status-success-bg-solid);
|
||||
color: var(--voice-status-success);
|
||||
}
|
||||
|
||||
.buttonCameraOn:hover,
|
||||
.buttonScreenShareOn:hover {
|
||||
background-color: color-mix(in srgb, var(--voice-status-success) 30%, var(--voice-surface-2));
|
||||
}
|
||||
|
||||
.buttonDisconnect {
|
||||
background-color: var(--voice-status-danger-bg-solid);
|
||||
color: var(--voice-status-danger);
|
||||
}
|
||||
|
||||
.buttonDisconnect:hover {
|
||||
background-color: var(--voice-status-danger-bg-strong-solid);
|
||||
}
|
||||
|
||||
/* Settings cog overlay (top-right of mic/camera buttons) */
|
||||
.settingsButton {
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
right: -4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 9999px;
|
||||
background-color: var(--background-tertiary);
|
||||
color: var(--text-primary);
|
||||
box-shadow: 0 0 0 2px var(--background-primary);
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
Reference in New Issue
Block a user