From 4b0d22655dbeb74d6715d5c719f1fbcda0b8e5f4 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Wed, 5 Apr 2023 19:14:46 +0100 Subject: [PATCH] Feat/tokens + darkmode + theme support (#7876) --- apps/storybook/components/VariantsTable.tsx | 5 +- apps/storybook/styles/storybook-styles.css | 85 ++ apps/web/components/AddToHomescreen.tsx | 4 +- apps/web/components/AppListCard.tsx | 4 +- apps/web/components/Embed.tsx | 58 +- apps/web/components/ImageUploader.tsx | 8 +- apps/web/components/NavTabs.tsx | 8 +- apps/web/components/apps/App.tsx | 48 +- .../components/apps/CalendarListContainer.tsx | 22 +- apps/web/components/auth/TwoFactor.tsx | 2 +- .../components/auth/layouts/AdminLayout.tsx | 2 +- .../availability/SkeletonLoader.tsx | 4 +- .../booking/AvailableEventLocations.tsx | 4 +- .../web/components/booking/AvailableTimes.tsx | 13 +- .../components/booking/BookingDescription.tsx | 21 +- .../components/booking/BookingListItem.tsx | 30 +- apps/web/components/booking/CancelBooking.tsx | 9 +- .../web/components/booking/SkeletonLoader.tsx | 2 +- apps/web/components/booking/SlotPicker.tsx | 2 +- apps/web/components/booking/TimeOptions.tsx | 3 +- .../booking/pages/AvailabilityPage.tsx | 39 +- .../components/booking/pages/BookingPage.tsx | 26 +- .../components/dialog/EditLocationDialog.tsx | 19 +- .../components/dialog/RescheduleDialog.tsx | 6 +- apps/web/components/error/error-page.tsx | 16 +- .../components/eventtype/AvailabilityTab.tsx | 16 +- .../eventtype/CustomEventTypeModal.tsx | 28 +- .../components/eventtype/EventAdvancedTab.tsx | 20 +- .../web/components/eventtype/EventAppsTab.tsx | 2 +- .../components/eventtype/EventLimitsTab.tsx | 14 +- .../components/eventtype/EventSetupTab.tsx | 8 +- .../web/components/eventtype/EventTeamTab.tsx | 2 +- .../eventtype/EventTypeSingleLayout.tsx | 16 +- .../eventtype/RecurringEventController.tsx | 10 +- .../RequiresConfirmationController.tsx | 119 +- .../components/eventtype/SkeletonLoader.tsx | 6 +- .../components/ConnectedCalendarItem.tsx | 8 +- .../CreateEventsOnCalendarSelect.tsx | 2 +- .../steps-views/ConnectCalendars.tsx | 10 +- .../steps-views/SetupAvailability.tsx | 2 +- .../steps-views/UserProfile.tsx | 8 +- .../steps-views/UserSettings.tsx | 8 +- apps/web/components/layouts/WizardLayout.tsx | 6 +- .../security/ChangePasswordSection.tsx | 12 +- .../security/DisableTwoFactorModal.tsx | 4 +- .../security/DisableUserImpersonation.tsx | 4 +- .../security/EnableTwoFactorModal.tsx | 4 +- .../security/TwoFactorAuthSection.tsx | 4 +- .../security/TwoFactorModalHeader.tsx | 6 +- .../components/settings/CalendarSwitch.tsx | 2 +- .../settings/DisableTwoFactorModal.tsx | 4 +- apps/web/components/setup/AdminUser.tsx | 4 +- apps/web/components/setup/ChooseLicense.tsx | 16 +- .../components/setup/EnterpriseLicense.tsx | 12 +- apps/web/components/setup/StepDone.tsx | 4 +- apps/web/components/team/screens/Team.tsx | 11 +- apps/web/components/ui/AuthContainer.tsx | 8 +- apps/web/components/ui/EditableHeading.tsx | 4 +- apps/web/components/ui/InfoBadge.tsx | 2 +- apps/web/components/ui/LinkIconButton.tsx | 4 +- apps/web/components/ui/ModalContainer.tsx | 2 +- apps/web/components/ui/PoweredByCal.tsx | 2 +- .../components/ui/SettingInputContainer.tsx | 4 +- .../UsernameAvailability/PremiumTextfield.tsx | 35 +- .../UsernameTextfield.tsx | 26 +- apps/web/components/ui/form/CheckboxField.tsx | 6 +- apps/web/components/ui/form/CheckedSelect.tsx | 2 +- apps/web/components/ui/form/DatePicker.tsx | 4 +- .../web/components/ui/form/LocationSelect.tsx | 7 +- apps/web/components/ui/form/MinutesField.tsx | 6 +- apps/web/lib/app-providers.tsx | 60 +- apps/web/pages/404.tsx | 86 +- apps/web/pages/500.tsx | 14 +- apps/web/pages/[user].tsx | 57 +- apps/web/pages/[user]/[type].tsx | 12 +- apps/web/pages/[user]/book.tsx | 14 +- apps/web/pages/_document.tsx | 4 +- apps/web/pages/apps/[slug]/setup.tsx | 2 +- apps/web/pages/apps/categories/[category].tsx | 4 +- apps/web/pages/apps/categories/index.tsx | 6 +- apps/web/pages/apps/index.tsx | 6 +- apps/web/pages/apps/installed/[category].tsx | 2 +- apps/web/pages/auth/error.tsx | 6 +- apps/web/pages/auth/forgot-password/[id].tsx | 6 +- apps/web/pages/auth/forgot-password/index.tsx | 2 +- apps/web/pages/auth/login.tsx | 18 +- apps/web/pages/auth/logout.tsx | 12 +- apps/web/pages/auth/setup/index.tsx | 10 +- apps/web/pages/auth/verify.tsx | 10 +- apps/web/pages/availability/[schedule].tsx | 20 +- apps/web/pages/availability/index.tsx | 4 +- apps/web/pages/availability/troubleshoot.tsx | 16 +- apps/web/pages/booking/[uid].tsx | 92 +- apps/web/pages/bookings/[status].tsx | 12 +- apps/web/pages/d/[link]/[slug].tsx | 1 - apps/web/pages/d/[link]/book.tsx | 2 - apps/web/pages/event-types/index.tsx | 22 +- .../web/pages/getting-started/[[...step]].tsx | 4 +- apps/web/pages/insights/index.tsx | 8 +- apps/web/pages/maintenance.tsx | 8 +- apps/web/pages/more.tsx | 2 +- apps/web/pages/settings/billing/index.tsx | 4 +- .../pages/settings/my-account/appearance.tsx | 43 +- .../pages/settings/my-account/calendars.tsx | 28 +- .../settings/my-account/conferencing.tsx | 4 +- .../web/pages/settings/my-account/general.tsx | 12 +- .../web/pages/settings/my-account/profile.tsx | 8 +- .../pages/settings/security/impersonation.tsx | 4 +- apps/web/pages/settings/security/password.tsx | 10 +- .../settings/security/two-factor-auth.tsx | 6 +- apps/web/pages/signup.tsx | 24 +- apps/web/pages/team/[slug].tsx | 24 +- apps/web/pages/team/[slug]/[type].tsx | 1 - apps/web/pages/team/[slug]/book.tsx | 2 - apps/web/pages/video/meeting-ended/[uid].tsx | 10 +- .../pages/video/meeting-not-started/[uid].tsx | 2 +- apps/web/styles/globals.css | 202 ++-- packages/app-store/_components/AppCard.tsx | 15 +- .../app-store/_components/AppSettings.tsx | 2 +- .../applecalendar/pages/setup/index.tsx | 6 +- .../caldavcalendar/pages/setup/index.tsx | 6 +- .../app-store/closecom/pages/setup/index.tsx | 10 +- packages/app-store/components.tsx | 8 +- .../pages/setup/index.tsx | 6 +- .../pages/setup/index.tsx | 6 +- .../exchangecalendar/pages/setup/index.tsx | 6 +- .../giphy/components/SearchDialog.tsx | 14 +- .../components/ExistingGoogleCal.tsx | 6 +- .../components/EventTypeAppCardInterface.tsx | 2 +- .../rainbow/components/RainbowInstallForm.tsx | 6 +- .../rainbow/components/RainbowKit.tsx | 6 +- .../routing-forms/components/FormActions.tsx | 6 +- .../components/FormInputFields.tsx | 5 +- .../routing-forms/components/SingleForm.tsx | 20 +- .../react-awesome-query-builder/styles.css | 1 - .../react-awesome-query-builder/widgets.tsx | 12 +- packages/app-store/routing-forms/config.json | 4 +- .../pages/form-edit/[...appPages].tsx | 1 + .../pages/forms/[...appPages].tsx | 10 +- .../pages/reporting/[...appPages].tsx | 36 +- .../pages/route-builder/[...appPages].tsx | 12 +- .../pages/router/[...appPages].tsx | 4 +- .../pages/routing-link/[...appPages].tsx | 36 +- .../static/{icon.svg => icon-dark.svg} | 0 .../app-store/sendgrid/pages/setup/index.tsx | 10 +- packages/app-store/sirius_video/config.json | 4 +- .../static/{icon.svg => icon-dark.svg} | 0 .../components/EventTypeAppCardInterface.tsx | 2 +- packages/app-store/typeform/config.json | 2 +- .../pages/how-to-use/[...appPages].tsx | 20 +- .../static/{icon.svg => icon-dark.svg} | 0 .../vital/components/AppConfiguration.tsx | 2 +- packages/app-store/whereby/config.json | 4 +- .../static/{icon.svg => icon-dark.svg} | 0 .../components/confirmDialog.tsx | 4 +- packages/app-store/wordpress/config.json | 4 +- .../app-store/wordpress/static/icon-dark.svg | 1 + packages/app-store/wordpress/static/icon.svg | 1 - .../zapier/components/TemplateCard.tsx | 6 +- .../app-store/zapier/pages/setup/index.tsx | 14 +- packages/config/tailwind-preset.js | 146 +-- packages/config/theme/colors.css | 86 ++ packages/config/theme/generateColor.ts | 85 ++ packages/config/theme/interfaces.ts | 17 + .../embed-core/src/Inline/inlineHtml.ts | 2 +- .../embed-core/src/ModalBox/ModalBoxHtml.ts | 4 +- .../embeds/embed-core/src/embed-iframe.ts | 7 - packages/features/apps/AdminAppsList.tsx | 2 +- .../bookings/components/EventTypeFilter.tsx | 6 +- .../bookings/components/PeopleFilter.tsx | 14 +- .../bookings/components/TeamFilter.tsx | 22 +- packages/features/calendars/DatePicker.tsx | 36 +- .../calendars/DestinationCalendarSelector.tsx | 6 +- .../weeklyview/components/Calendar.tsx | 8 +- .../components/DateValues/index.tsx | 12 +- .../weeklyview/components/event/Empty.tsx | 9 +- .../weeklyview/components/event/Event.tsx | 10 +- .../components/heading/SchedulerHeading.tsx | 4 +- .../components/horizontalLines/index.tsx | 6 +- .../api-keys/components/ApiKeyDialogForm.tsx | 14 +- .../ee/api-keys/components/ApiKeyListItem.tsx | 7 +- .../ee/payments/components/Payment.tsx | 12 +- .../ee/payments/components/PaymentPage.tsx | 21 +- .../ee/sso/components/ConnectionInfo.tsx | 6 +- .../ee/sso/components/OIDCConnection.tsx | 6 +- .../ee/sso/components/SAMLConnection.tsx | 6 +- .../features/ee/sso/page/teams-sso-view.tsx | 2 +- .../features/ee/sso/page/user-sso-view.tsx | 2 +- .../ee/support/components/HelpMenuItem.tsx | 35 +- .../lib/freshchat/FreshChatMenuItem.tsx | 2 +- .../lib/helpscout/HelpscoutMenuItem.tsx | 2 +- .../support/lib/intercom/IntercomMenuItem.tsx | 2 +- .../support/lib/zendesk/ZendeskMenuItem.tsx | 2 +- .../ee/teams/components/AddNewTeamMembers.tsx | 10 +- .../teams/components/CreateANewTeamForm.tsx | 2 + .../components/DisableTeamImpersonation.tsx | 4 +- .../components/MemberChangeRoleModal.tsx | 9 +- .../components/MemberInvitationModal.tsx | 10 +- .../ee/teams/components/MemberListItem.tsx | 15 +- .../components/SkeletonloaderTeamList.tsx | 2 +- .../components/TeamAvailabilityModal.tsx | 17 +- .../components/TeamAvailabilityScreen.tsx | 26 +- .../components/TeamAvailabilityTimes.tsx | 8 +- .../ee/teams/components/TeamInviteList.tsx | 2 +- .../teams/components/TeamInviteListItem.tsx | 10 +- .../features/ee/teams/components/TeamList.tsx | 8 +- .../ee/teams/components/TeamListItem.tsx | 10 +- .../features/ee/teams/components/TeamPill.tsx | 8 +- .../ee/teams/components/TeamsListing.tsx | 6 +- .../components/v2/TeamAvailabilityModal.tsx | 5 +- .../components/v2/TeamAvailabilityScreen.tsx | 26 +- .../components/v2/TeamAvailabilityTimes.tsx | 6 +- .../ee/teams/pages/team-appearance-view.tsx | 28 +- .../ee/teams/pages/team-billing-view.tsx | 2 +- .../ee/teams/pages/team-members-view.tsx | 6 +- .../ee/teams/pages/team-profile-view.tsx | 18 +- .../ee/video/ViewRecordingsDialog.tsx | 4 +- .../components/RecordingListItemSkeleton.tsx | 2 +- .../components/UpgradeRecordingBanner.tsx | 2 +- .../ee/workflows/components/EmptyScreen.tsx | 14 +- .../components/EventWorkflowsTab.tsx | 14 +- .../SkeletonLoaderEventWorkflowsTab.tsx | 4 +- .../components/SkeletonLoaderList.tsx | 2 +- .../components/WorkflowDetailsPage.tsx | 10 +- .../workflows/components/WorkflowListPage.tsx | 10 +- .../components/WorkflowStepContainer.tsx | 52 +- .../features/ee/workflows/pages/index.tsx | 12 +- .../features/ee/workflows/pages/workflow.tsx | 2 +- .../BulkEditDefaultConferencingModal.tsx | 12 +- .../components/CheckedTeamSelect.tsx | 4 +- .../components/CreateEventTypeDialog.tsx | 2 +- .../eventtypes/components/EmptyPage.tsx | 6 +- .../components/EventTypeDescription.tsx | 4 +- .../components/MultiDropdownSelect.tsx | 5 +- packages/features/form-builder/Components.tsx | 22 +- .../features/form-builder/FormBuilder.tsx | 24 +- .../components/AverageEventDurationChart.tsx | 7 +- .../components/BookingStatusLineChart.tsx | 9 +- .../features/insights/components/Card.tsx | 2 +- .../features/insights/components/KPICard.tsx | 6 +- .../LeastBookedTeamMembersTable.tsx | 2 +- .../insights/components/LineChart.tsx | 12 + .../components/MostBookedTeamMembersTable.tsx | 2 +- .../components/PopularEventsTable.tsx | 8 +- .../components/TotalBookingUsersTable.tsx | 4 +- .../insights/components/tremor.types.ts | 49 + .../features/insights/filters/DateSelect.css | 15 +- .../features/insights/filters/FilterType.tsx | 4 +- packages/features/kbar/Kbar.tsx | 25 +- .../components/DateOverrideInputDialog.tsx | 6 +- .../schedules/components/DateOverrideList.tsx | 12 +- .../schedules/components/Schedule.tsx | 24 +- .../schedules/components/ScheduleListItem.tsx | 12 +- packages/features/settings/ThemeLabel.tsx | 4 +- .../settings/layouts/SettingsLayout.tsx | 48 +- packages/features/shell/Shell.tsx | 84 +- packages/features/tips/UpgradeTip.tsx | 10 +- .../users/components/UserV2OptInBanner.tsx | 4 +- .../webhooks/components/WebhookForm.tsx | 22 +- .../webhooks/components/WebhookListItem.tsx | 2 +- .../components/WebhookListItemSkeleton.tsx | 2 +- .../components/WebhookListSkeleton.tsx | 2 +- .../components/WebhookTestDisclosure.tsx | 14 +- .../webhooks/pages/webhook-new-view.tsx | 3 +- packages/lib/CustomBranding.test.tsx | 155 --- packages/lib/CustomBranding.tsx | 318 ----- packages/lib/OgImages.tsx | 10 +- packages/lib/getBrandColours.test.ts | 39 + packages/lib/getBrandColours.tsx | 197 ++++ packages/lib/hooks/useTheme.tsx | 4 + packages/ui/components/alert/Alert.tsx | 11 +- packages/ui/components/apps/AllApps.tsx | 22 +- packages/ui/components/apps/AppCard.tsx | 27 +- packages/ui/components/apps/Categories.tsx | 15 +- .../ui/components/apps/SkeletonLoader.tsx | 4 +- packages/ui/components/apps/Slider.tsx | 4 +- packages/ui/components/avatar/Avatar.tsx | 6 +- packages/ui/components/avatar/AvatarGroup.tsx | 4 +- packages/ui/components/badge/Badge.tsx | 18 +- .../ui/components/breadcrumb/Breadcrumb.tsx | 2 +- packages/ui/components/button/Button.tsx | 53 +- .../ui/components/button/LinkIconButton.tsx | 4 +- .../ui/components/button/button.stories.mdx | 2 +- packages/ui/components/card/Card.tsx | 20 +- packages/ui/components/card/FormCard.tsx | 10 +- packages/ui/components/card/StepCard.tsx | 2 +- packages/ui/components/credits/Credits.tsx | 2 +- .../dialog/ConfirmationDialogContent.tsx | 10 +- packages/ui/components/dialog/Dialog.tsx | 10 +- packages/ui/components/divider/Divider.tsx | 6 +- .../ui/components/divider/divider.stories.mdx | 4 +- packages/ui/components/editor/Editor.tsx | 2 +- .../editor/plugins/AddVariablesDropdown.tsx | 6 +- .../editor/plugins/ToolbarPlugin.tsx | 51 +- .../ui/components/editor/stylesEditor.css | 50 +- .../components/empty-screen/EmptyScreen.tsx | 12 +- .../ui/components/form/checkbox/Checkbox.tsx | 8 +- .../form/checkbox/MultiSelectCheckboxes.tsx | 2 +- .../form/color-picker/colorpicker.tsx | 6 +- .../date-range-picker/DateRangePicker.tsx | 10 +- .../components/form/datepicker/DatePicker.tsx | 4 +- .../ui/components/form/dropdown/Dropdown.tsx | 14 +- .../components/form/inputs/HintOrErrors.tsx | 6 +- packages/ui/components/form/inputs/Input.tsx | 30 +- packages/ui/components/form/inputs/Label.tsx | 2 +- packages/ui/components/form/select/Select.tsx | 41 +- .../ui/components/form/select/components.tsx | 2 +- .../form/selectimproved/components/Item.tsx | 22 +- .../selectimproved/components/Options.tsx | 2 +- .../selectimproved/components/SearchInput.tsx | 4 +- .../form/selectimproved/components/Select.tsx | 20 +- packages/ui/components/form/step/FormStep.tsx | 2 +- packages/ui/components/form/step/Stepper.tsx | 6 +- packages/ui/components/form/step/Steps.tsx | 6 +- .../components/form/switch/SettingsToggle.tsx | 4 +- packages/ui/components/form/switch/Switch.tsx | 14 +- .../form/timezone-select/TimezoneSelect.tsx | 54 +- .../form/toggleGroup/BooleanToggleGroup.tsx | 8 +- .../form/toggleGroup/ToggleGroup.tsx | 8 +- .../ui/components/form/wizard/WizardForm.tsx | 4 +- .../image-uploader/ImageUploader.tsx | 16 +- .../ui/components/layout/ShellSubHeading.tsx | 4 +- .../ui/components/layout/spacing.stories.mdx | 20 +- packages/ui/components/list/List.tsx | 17 +- packages/ui/components/logo/Logo.tsx | 2 +- .../navigation/tabs/HorizontalTabItem.tsx | 4 +- .../navigation/tabs/VerticalTabItem.tsx | 6 +- .../ui/components/popover/AnimatedPopover.tsx | 4 +- .../popover/MeetingTimeInTimezones.tsx | 6 +- packages/ui/components/skeleton/Loader.tsx | 2 +- packages/ui/components/skeleton/index.tsx | 11 +- packages/ui/components/toast/showToast.tsx | 8 +- packages/ui/components/tooltip/Tooltip.tsx | 2 +- .../ui/components/tooltip/tooltip.stories.mdx | 2 +- .../ui/components/top-banner/TopBanner.tsx | 10 +- packages/ui/form/AddressInput.tsx | 2 +- packages/ui/form/MultiSelectCheckboxes.tsx | 2 +- packages/ui/form/PhoneInput.tsx | 6 +- packages/ui/form/fields.tsx | 12 +- packages/ui/form/radio-area/Radio.tsx | 17 +- .../ui/form/radio-area/RadioAreaGroup.tsx | 4 +- packages/ui/form/radio-area/Select.tsx | 6 +- packages/ui/index.tsx | 1 + packages/ui/styles/useCalcomTheme.tsx | 28 + yarn.lock | 1025 ++++++----------- 345 files changed, 3016 insertions(+), 3150 deletions(-) rename packages/app-store/routing-forms/static/{icon.svg => icon-dark.svg} (100%) rename packages/app-store/sirius_video/static/{icon.svg => icon-dark.svg} (100%) rename packages/app-store/typeform/static/{icon.svg => icon-dark.svg} (100%) rename packages/app-store/whereby/static/{icon.svg => icon-dark.svg} (100%) create mode 100644 packages/app-store/wordpress/static/icon-dark.svg delete mode 100644 packages/app-store/wordpress/static/icon.svg create mode 100644 packages/config/theme/colors.css create mode 100644 packages/config/theme/generateColor.ts create mode 100644 packages/config/theme/interfaces.ts create mode 100644 packages/features/insights/components/LineChart.tsx create mode 100644 packages/features/insights/components/tremor.types.ts delete mode 100644 packages/lib/CustomBranding.test.tsx delete mode 100644 packages/lib/CustomBranding.tsx create mode 100644 packages/lib/getBrandColours.test.ts create mode 100644 packages/lib/getBrandColours.tsx create mode 100644 packages/ui/styles/useCalcomTheme.tsx diff --git a/apps/storybook/components/VariantsTable.tsx b/apps/storybook/components/VariantsTable.tsx index 781b74f92a..30b136777e 100644 --- a/apps/storybook/components/VariantsTable.tsx +++ b/apps/storybook/components/VariantsTable.tsx @@ -1,4 +1,5 @@ -import React, { ReactElement, ReactNode } from "react"; +import type { ReactElement, ReactNode } from "react"; +import React from "react"; import { classNames } from "@calcom/lib"; @@ -42,7 +43,7 @@ export function VariantsTable({ {!isDark && ( -
+
{children} diff --git a/apps/storybook/styles/storybook-styles.css b/apps/storybook/styles/storybook-styles.css index d141252654..a5cc2aa8d1 100644 --- a/apps/storybook/styles/storybook-styles.css +++ b/apps/storybook/styles/storybook-styles.css @@ -193,3 +193,88 @@ .docs-story { padding: 24px !important; } + +@layer { + :root { + /* background */ + + --cal-bg-emphasis: #E5E7EB; + --cal-bg: white; + --cal-bg-subtle: #F3F4F6; + --cal-bg-muted: #F9FAFB; + --cal-bg-inverted: #111827; + + /* background -> components*/ + --cal-bg-info: #DEE9FC; + --cal-bg-success: #E2FBE8; + --cal-bg-attention: #FCEED8; + --cal-bg-error: #F9E3E2; + + + /* Borders */ + --cal-border-emphasis:#9CA3AF; + --cal-border: #D1D5DB; + --cal-border-subtle:#E5E7EB; + --cal-border-muted:#F3F4F6; + + /* Content/Text */ + --cal-text-emphasis: #111827; + --cal-text:#374151; + --cal-text-subtle:#6B7280; + --cal-text-muted:#9CA3AF; + --cal-text-inverted:white; + + /* Content/Text -> components */ + --cal-text-info:#253985; + --cal-text-success:#285231; + --cal-text-attention:#73321B; + --cal-text-error:#752522; + + /* Brand shinanigans + -> These will be computed for the users theme at runtime. + */ + --cal-brand:#111827; + --cal-brand-emphasis:#101010; + } + .dark { + /* background */ + + --cal-bg-emphasis: #2B2B2B; + --cal-bg: #101010; + --cal-bg-subtle: #2B2B2B; + --cal-bg-muted: #1C1C1C; + --cal-bg-inverted: #F3F4F6; + + /* background -> components*/ + --cal-bg-info: #DEE9FC; + --cal-bg-success: #E2FBE8; + --cal-bg-attention: #FCEED8; + --cal-bg-error: #F9E3E2; + + + /* Borders */ + --cal-border-emphasis: #575757; + --cal-border: #444444; + --cal-border-subtle: #2B2B2B; + --cal-border-muted: #1C1C1C; + + /* Content/Text */ + --cal-text-emphasis: #F3F4F6; + --cal-text: #D6D6D6; + --cal-text-subtle: #757575; + --cal-text-muted: #575757; + --cal-text-inverted: #101010; + + /* Content/Text -> components */ + --cal-text-info: #253985; + --cal-text-success: #285231; + --cal-text-attention: #73321B; + --cal-text-error: #752522; + + /* Brand shenanigans + -> These will be computed for the users theme at runtime. + */ + --cal-brand: #111827; + --cal-brand-emphasis: #101010; + } +} diff --git a/apps/web/components/AddToHomescreen.tsx b/apps/web/components/AddToHomescreen.tsx index bae44edf0a..78572c6c4e 100644 --- a/apps/web/components/AddToHomescreen.tsx +++ b/apps/web/components/AddToHomescreen.tsx @@ -29,7 +29,7 @@ export default function AddToHomescreen() { -

+

{t("add_to_homescreen")}

@@ -40,7 +40,7 @@ export default function AddToHomescreen() { type="button" className="-mr-1 flex rounded-md p-2 hover:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-white"> {t("dismiss")} -
diff --git a/apps/web/components/AppListCard.tsx b/apps/web/components/AppListCard.tsx index bcef3310a3..b1d9eebb48 100644 --- a/apps/web/components/AppListCard.tsx +++ b/apps/web/components/AppListCard.tsx @@ -63,12 +63,12 @@ export default function AppListCard(props: AppListCardProps) { }, []); return ( -
+
{logo ? {`${title} : null}
-

{title}

+

{title}

{isDefault && {t("default")}} {isTemplate && Template} diff --git a/apps/web/components/Embed.tsx b/apps/web/components/Embed.tsx index 8112a38847..c8dea57ce6 100644 --- a/apps/web/components/Embed.tsx +++ b/apps/web/components/Embed.tsx @@ -509,7 +509,7 @@ const tabs = [ return ( <>
- + {t("place_where_cal_widget_appear", { appName: APP_NAME })}
@@ -517,7 +517,7 @@ const tabs = [ data-testid="embed-code" ref={ref as typeof ref & MutableRefObject} name="embed-code" - className="h-[calc(100%-50px)] font-mono" + className="text-default bg-default selection:bg-subtle h-[calc(100%-50px)] font-mono" style={{ resize: "none", overflow: "auto" }} readOnly value={ @@ -534,7 +534,7 @@ ${getEmbedTypeSpecificString({ embedFramework: "HTML", embedType, calLink, previ ` } /> -

+

{t( "Need help? See our guides for embedding Cal on Wix, Squarespace, or WordPress, check our common questions, or explore advanced embed options." )} @@ -561,12 +561,12 @@ ${getEmbedTypeSpecificString({ embedFramework: "HTML", embedType, calLink, previ } return ( <> - {t("create_update_react_component")} + {t("create_update_react_component")}