diff --git a/src/app/globals.css b/src/app/globals.css index 520a142..ac8439e 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,5 +1,4 @@ @import "react-big-calendar/lib/css/react-big-calendar.css"; -/* @import '../styles/custom-calendar.css'; */ * { box-sizing: border-box; @@ -25,27 +24,27 @@ body { :root { --color-page-bg: #fff; - --color-toolbar-bg: #ef3e0e; + --color-toolbar-bg: #2C3168; --color-toolbar-button: rgb(255, 255, 255); - --color-toolbar-button-hover: rgba(79, 45, 80, 0.692); - --color-toolbar-button-active: rgba(79, 45, 80, 0.692); + --color-toolbar-button-hover: rgba(44, 49, 104, 0.692); + --color-toolbar-button-active: rgba(113, 120, 197, 0.692); --color-toolbar-label: #fff; - --color-toolbar-text: #ef3e0e; + --color-toolbar-text: #2C3168; - --color-modal-button: #ef3e0e; + --color-modal-button: #2C3168; --color-modal-text: #fff; - --color-modal-button-hover: #a33718; + --color-modal-button-hover: #1c2050; --color-header-button: #fff; - --color-header-text: #ef3e0e; - --color-header-button-hover: #a33718; + --color-header-text: #2C3168; + --color-header-button-hover: #1c2050; --color-header-text-hover: #fff; --color-calendar-bg: #d3d3d3; - --color-calendar-border: #ee5126; + --color-calendar-border: #5960b3; --color-calendar-numbers: #ffffff; - --color-event-bg: #ef3e0e; + --color-event-bg: #2C3168; --color-event-text: #fff; --color-today-border: #007bff; diff --git a/src/app/layout.js b/src/app/layout.js index 54c3f38..b584961 100644 --- a/src/app/layout.js +++ b/src/app/layout.js @@ -1,10 +1,8 @@ import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; -// import "@/styles/custom-calendar.css"; -import Sidebar from "@/components/Sidebar"; +import "@/styles/main.scss"; import Header from "@/components/Header"; import StyledComponentsRegistry from "@/lib/registry"; -import Square from "@/components/Square"; import { CalendarProvider } from "@/context/CalendarContext"; const geistSans = Geist({ @@ -41,9 +39,8 @@ export default function RootLayout({ children }) { style={{ display: "flex", backgroundColor: "var(--color-toolbar-bg)", - width: '100%', - height: 'auto', - + width: "100%", + height: "auto", }} > {/* */} @@ -54,7 +51,7 @@ export default function RootLayout({ children }) { display: "flex", overflow: "hidden", justifyContent: "center", - alignItems: 'center', + alignItems: "center", width: "100%", height: "100%", }} diff --git a/src/components/Button.jsx b/src/components/Button.jsx index 58ce194..137332b 100644 --- a/src/components/Button.jsx +++ b/src/components/Button.jsx @@ -1,32 +1,16 @@ -import styled from "styled-components"; - -const ButtonWrapper = styled.button` - display: flex; - align-items: center; - justify-content: center; - text-align: center; - font-size: 1.1rem; - border: none; - background-color: var(--color-header-button); - padding: 15px; - border-radius: 15px; - cursor: pointer; - width: auto; - color: var(--color-header-text); - transition: background-color 0.2s ease, color 0.2s ease; - - &:hover { - background-color: var(--color-header-button-hover); - color: var(--color-header-text-hover); - } -`; - -export default function Button({ children, type = "button", ...props }) { +export default function Button({ + children, + type = "button", + className = "", + ...props +}) { return ( - <> - - {children} - - + ); } diff --git a/src/components/Calendar.jsx b/src/components/Calendar.jsx index 2c4e42b..af6bd01 100644 --- a/src/components/Calendar.jsx +++ b/src/components/Calendar.jsx @@ -1,30 +1,13 @@ "use client"; import { Calendar, momentLocalizer } from "react-big-calendar"; import moment from "moment"; -import styled from "styled-components"; + import { useEffect, useState } from "react"; import { useCalendar } from "@/context/CalendarContext"; import EventFormModal from "./EventFormModal"; import DeleteEventModal from "./DeleteEventModal"; import { useRouter } from "next/navigation"; -const CalendarWrapper = styled.div` - display: flex; - justify-content: center; - align-items: flex-start; - height: 75vh; - width: 90vw; - padding: 10px; - box-sizing: border-box; -`; - -const CalendarSizing = styled.div` - flex-grow: 1; - width: 100%; - max-width: 1200px; - height: 100%; -`; - const localizer = momentLocalizer(moment); export default function UserCalendar() { @@ -113,8 +96,8 @@ export default function UserCalendar() { return ( <>
- - +
+
setEventToDelete(event)} onNavigate={(date) => setDate(date)} - style={{ - minHeight: "494px", - height: "100%", - minWidth: "452px", - boxShadow: "2px 3px 6px 4px rgba(0, 0, 0, 0.1)", - }} + className="calendar__component" /> {showModal && } {eventToDelete && typeof eventToDelete === "object" && ( @@ -147,8 +125,8 @@ export default function UserCalendar() { }} /> )} - - +
+
); diff --git a/src/components/CalendarSkeletion.jsx b/src/components/CalendarSkeletion.jsx index dcae73a..37d8ed0 100644 --- a/src/components/CalendarSkeletion.jsx +++ b/src/components/CalendarSkeletion.jsx @@ -1,20 +1,11 @@ -'use client' -import styled from "styled-components"; - -const SkeletonWrapper = styled.div` - flex-grow: 1; // fill the remaining space next to Sidebar - padding: 50px 20px 50px 50px; - height: 80vh; -`; +"use client"; const CalendarSkeleton = () => { return ( - <> - -

Loading calendar...

-
- - ) -} +
+
Loading calendar...
+
+ ); +}; -export default CalendarSkeleton \ No newline at end of file +export default CalendarSkeleton; diff --git a/src/components/ContactTabInModal.jsx b/src/components/ContactTabInModal.jsx index 8c8693f..5f3958c 100644 --- a/src/components/ContactTabInModal.jsx +++ b/src/components/ContactTabInModal.jsx @@ -1,111 +1,52 @@ "use client"; import Image from "next/image"; -import styled from "styled-components"; - -const TabWrapper = styled.div` - width: 100%; - display: flex; - background-color: ${({ isSelected }) => - isSelected - ? "var(--color-selected-contact-bg)" - : "var(--color-notselected-contact-bg)"}; - color: #fff; - transition: background-color 0.2s ease; -`; - -const UserContactIconWrapper = styled.div` - min-width: 13%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - padding: 7px 20px 7px 15px; - color: var(--color-contacts-text); -`; - -const UserContactIcon = styled.button` - cursor: pointer; - border: none; - height: 40px; - width: 40px; - border-radius: 30px; - display: flex; - justify-content: center; - align-items: center; - background-color: var(--color-user-icon); - color: var(--color-contacts-icon-text); -`; - -const ContactSnippetWrapper = styled.div` - display: flex; - justify-content: left; - align-items: center; - flex-grow: 1; - font-size: 1.2rem; - font-weight: 500; - padding: 10px; -`; - -const ContactSnippet = styled.button` - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; - text-overflow: ellipsis; - color: var(--color-contacts-text); - cursor: pointer; - border: none; - background-color: inherit; - font-size: 1.2rem; -`; - -const ContactFunctionWrapper = styled.div` - display: flex; - justify-content: center; - align-items: center; - width: auto; - height: 100%; - position: relative; -`; export default function ContactTabInModal({ contact, isSelected, onToggle }) { const trashcanImage = "/images/trashcan.png"; return ( - - - onToggle(contact.id)}> +
+
+ +
+
+ +
+
- - +
+
); } diff --git a/src/components/ContactsSkeleton.jsx b/src/components/ContactsSkeleton.jsx index 08a7e2f..cc456c5 100644 --- a/src/components/ContactsSkeleton.jsx +++ b/src/components/ContactsSkeleton.jsx @@ -1,20 +1,11 @@ -'use client' -import styled from "styled-components"; - -const SkeletonWrapper = styled.div` - flex-grow: 1; // fill the remaining space next to Sidebar - padding: 50px 20px 50px 50px; - height: 80vh; -`; +"use client"; const ContactsSkeleton = () => { return ( - <> - -
Loading...
-
- - ) -} +
+
Loading...
+
+ ); +}; -export default ContactsSkeleton \ No newline at end of file +export default ContactsSkeleton; diff --git a/src/components/DeleteEventModal.jsx b/src/components/DeleteEventModal.jsx index 3725e17..49310a7 100644 --- a/src/components/DeleteEventModal.jsx +++ b/src/components/DeleteEventModal.jsx @@ -1,104 +1,9 @@ "use client"; -import styled from "styled-components"; + import ModalButton from "./ModalButton"; import { useEffect, useState } from "react"; import UserOnEventInModal from "./UserOnEventInModal"; -const ModalWrapper = styled.div` - display: flex; - justify-content: center; - align-items: center; - height: 100%; -`; - -const ModalForm = styled.form` - display: flex; - justify-content: center; - align-items: center; - height: 100%; - width: 70%; - max-width: ; -`; - -const ModalOverlay = styled.div` - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - z-index: 10; -`; - -const ModalButtonWrapper = styled.div` - display: flex; - justify-content: space-evenly; - align-items: center; - width: 100%; -`; - -const ModalFormContainer = styled.div` - display: flex; - justify-content: space-evenly; - align-items: center; - flex-flow: column nowrap; - background-color: white; - height: auto; - width: 60%; - padding: 30px; - border-radius: 10px; - min-width: 315px; - max-width: 450px; -`; - -const TextContainerLeftAlign = styled.div` - display: flex; - justify-content: left; - align-items: center; - text-align: left; - width: 80%; - min-width: 100px; -`; - -const TextContainerCenterAlign = styled.div` - display: flex; - justify-content: center; - align-items: center; - text-align: left; - width: 100%; - min-width: 100px; - textalign: "center"; -`; - -const TitleBar = styled.input` - width: 80%; - font-size: 1.1rem; - margin: 0 0 20px 0; -`; - -const AddDatesContainers = styled.div` - display: flex; - justify-content: space-between; - width: 80%; - flex-flow: column nowrap; -`; - -const ContactsAddedContainer = styled.div` - width: 80%; - max-height: 220px; - background-color: #fff; - margin: 0 0 20px 0; - overflow-y: auto; -`; - -const TextContainer = styled.div` - width: 300px; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -`; - export default function DeleteEventModal({ event, onCancel, onConfirm }) { const [users, setUsers] = useState([]); @@ -114,101 +19,61 @@ export default function DeleteEventModal({ event, onCancel, onConfirm }) { return ( <> - - - - - - -

Event Title:

-
-

- {event.title} -

- +
+
+
+
+
+
+

Event Title:

+
+

{event.title}

+
- -

Start Time:

-
-

+

+

Start Time:

+
+

{event.start ? new Date(event.start).toLocaleString() : "N/A"}

- -

End Time:

-
-

+

+

End Time:

+
+

{event.end ? new Date(event.end).toLocaleString() : "N/A"}

- - -

Invited Contacts

-
+
+
+

Invited Contacts

+
- +
{users.length > 0 ? ( users.map((user) => ( )) ) : ( - -

+

+

No contacts were invited

- +
)} - - +
+
Delete Cancel - - - - - - +
+
+
+
+
+
); } diff --git a/src/components/DetailsContactTab.jsx b/src/components/DetailsContactTab.jsx index 8cf9755..bb37c07 100644 --- a/src/components/DetailsContactTab.jsx +++ b/src/components/DetailsContactTab.jsx @@ -1,119 +1,45 @@ "use client"; import { useCalendar } from "@/context/CalendarContext"; import Image from "next/image"; -import styled from "styled-components"; - -const TabWrapper = styled.div` - width: 100%; - display: flex; - background-color: var(--color-toolbar-label); - color: #fff; -`; - -const UserContactIconWrapper = styled.div` - min-width: 13%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - padding: 7px 20px 7px 15px; - color: var(--color-contacts-text); -`; - -const UserContactIcon = styled.div` - height: 60px; - width: 60px; - border-radius: 30px; - display: flex; - justify-content: center; - align-items: center; - font-size: 1.1rem; - background-color: var(--color-user-icon); - color: var(--color-contacts-icon-text); -`; - -const ContactSnippetWrapper = styled.div` - display: flex; - justify-content: left; - align-items: center; - flex-grow: 1; - font-size: 1.2rem; - font-weight: 500; - padding: 10px; -`; - -const ContactSnippet = styled.div` - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; - text-overflow: ellipsis; - cursor: pointer; - color: var(--color-contacts-text); -`; - -const AddContactButton = styled.button` - border: 0; - background-color: inherit; - font-size: 1.6rem; - width: auto; - padding: 0 10px; - cursor: pointer; - margin: 0 10px; -`; - -const ContactFunctionWrapper = styled.div` - display: flex; - justify-content: center; - align-items: center; - width: 10%; - height: 100%; - position: relative; -`; export default function DetailsContactTab({ contact }) { const trashcanImage = "/images/trashcan.png"; - const { contacts, addContacts, deleteContact } = useCalendar(); const contactExists = contacts.some((c) => c.id === contact.id); return ( - - - +
+
+
{contact.username.slice(0, 2).toUpperCase()} - - - - {contact.username} - - +
+
+
+
{contact.username}
+
{!contactExists ? ( - addContacts(contact.id)}> + ) : ( - <> - - - - +
+ +
)} - +
); } diff --git a/src/components/DetailsContainer.jsx b/src/components/DetailsContainer.jsx index e6a9fd4..f924b14 100644 --- a/src/components/DetailsContainer.jsx +++ b/src/components/DetailsContainer.jsx @@ -1,82 +1,33 @@ "use client"; import { useCalendar } from "@/context/CalendarContext"; -import styled from "styled-components"; + import { usePathname } from "next/navigation"; import DetailsContactTab from "./DetailsContactTab"; import SearchBar from "./SearchBar"; -const ComponentWrapper = styled.div` - display: flex; - justify-content: space-between; - align-items: center; - height: 95%; - flex-flow: column; - width: 60%; -`; - -const ContactsSectionWrapper = styled.div` - flex-flow: column nowrap; - width: 100%; - height: 100%; - max-width: 1200px; - box-sizing: border-box; - border: 2px solid black; - border-radius: 8px; - overflow: hidden; - background-color: var(--color-contacts-container-bg); - color: var(--color-contacts-text); - overflow-y: auto; - margin-bottom: 40px; - - &::-webkit-scrollbar { - border-bottom-right-radius: 8px; - border-top-right-radius: 8px; - } -`; - -const TabsLayout = styled.div` - border-bottom: 1px solid black; - width: 100%; - height: auto; - display: flex; -`; - -const EmptyInfoWrapper = styled.div` - display: flex; - justify-content: center; - align-items: center; - height: 100%; - font-size: 1.4rem; - text-align: center; -`; - -const TextContainerLeftAlign = styled.div` - display: flex; - justify-content: left; - align-items: center; - text-align: left; - width: 100%; -`; - export default function DetailsContainer() { const { messages, contacts, searchTerm, result } = useCalendar(); const pathname = usePathname(); return ( - -
- +
+
+
-

Your Contacts

- +
+

Your Contacts

+
+
{pathname.startsWith("/messages") ? ( //message section below <> {messages?.length === 0 ? ( - -

You have no Messages

-
+
+

+ You have no Messages +

+
) : ( <> {messages?.map((message, i) => ( @@ -94,40 +45,42 @@ export default function DetailsContainer() { {Array.isArray(contacts) && contacts.length === 0 && searchTerm.length < 3 ? ( - -

Your Contacts List is empty...

-
+
+

+ Your Contacts List is empty... +

+
) : Array.isArray(contacts) && contacts.length > 0 && searchTerm.length < 3 ? ( <> {contacts.map((contact, i) => ( - +
- +
))} ) : searchTerm.length >= 3 && result.length > 0 ? ( <> {result.map((contact, i) => ( - +
- +
))} ) : searchTerm.length >= 3 && result.length === 0 ? ( - -

No results found

-
+
+

No results found

+
) : ( - -

Loading...

-
+
+

Loading...

+
)} //end contacts section )} - - +
+
); } diff --git a/src/components/EventFormModal.jsx b/src/components/EventFormModal.jsx index 5ed5663..7dd2a13 100644 --- a/src/components/EventFormModal.jsx +++ b/src/components/EventFormModal.jsx @@ -1,111 +1,20 @@ "use client"; import { useCalendar } from "@/context/CalendarContext"; import { useState } from "react"; -import styled from "styled-components"; + import ContactTabInModal from "./ContactTabInModal"; import ModalButton from "./ModalButton"; -const ModalWrapper = styled.div` - display: flex; - justify-content: center; - align-items: center; - height: 100%; -`; - -const ModalForm = styled.form` - display: flex; - justify-content: center; - align-items: center; - height: 100%; - width: 70%; -`; - -const ModalOverlay = styled.div` - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - z-index: 10; -`; - -const ModalButtonWrapper = styled.div` - display: flex; - justify-content: space-evenly; - align-items: center; - width: 100%; -`; - -const ModalFormContainer = styled.div` - display: flex; - justify-content: space-evenly; - align-items: center; - flex-flow: column nowrap; - background-color: white; - height: auto; - width: 60%; - padding: 30px; - border-radius: 10px; - min-width: 315px; -`; - -const TextContainerLeftAlign = styled.div` - display: flex; - justify-content: left; - align-items: center; - text-align: left; - width: 80%; -`; - -const TitleBar = styled.input` - width: 80%; - font-size: 1.1rem; - margin: 0 0 20px 0; -`; - -const AddDatesContainers = styled.div` - display: flex; - justify-content: space-between; - width: 80%; - flex-flow: row nowrap; - - @media (max-width: 1588px) { - flex-flow: column nowrap; - } -`; - -const StartTimeBar = styled.input` - width: auto; - font-size: 1.1rem; - margin: 0 0 20px 0; - - @media (max-width: 1588px) { - width: 100%; - } -`; - -const EndTimeBar = styled.input` - width: auto; - font-size: 1.1rem; - margin: 0 0 20px 0; - - @media (max-width: 1588px) { - width: 100%; - } -`; - -const ContactsAddedContainer = styled.div` - width: 80%; - max-height: 220px; - background-color: #fff; - margin: 0 0 20px 0; - overflow-y: auto; -`; - export default function EventFormModal({ start, end }) { - const { showModal, setShowModal, contacts, addEvent, setEvents, user, refreshEvents } = - useCalendar(); + const { + showModal, + setShowModal, + contacts, + addEvent, + setEvents, + user, + refreshEvents, + } = useCalendar(); const [title, setTitle] = useState(""); const [selectContacts, setSelectContacts] = useState([]); @@ -173,46 +82,49 @@ export default function EventFormModal({ start, end }) { return ( <> - - - - - +
+
+
+
+

Event Title:

- - + setTitle(e.target.value)} /> - +
- +

Start Time:

- - + setStartTime(new Date(e.target.value))} />
- +

End Time:

- - + setEndTime(new Date(e.target.value))} />
- +
- +

Add Contacts

- - +
+
{contacts.map((contact) => ( ))} - +
- +
Confirm Cancel - - - - - +
+
+ +
+
); } diff --git a/src/components/Header.jsx b/src/components/Header.jsx index 0f0c414..87d4714 100644 --- a/src/components/Header.jsx +++ b/src/components/Header.jsx @@ -1,35 +1,10 @@ "use client"; import { useCalendar } from "@/context/CalendarContext"; -import styled from "styled-components"; import { useRouter } from "next/navigation"; import Square from "./Square"; import Button from "./Button"; import Link from "next/link"; -const HeaderWrapper = styled.div` - height: auto; - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; -`; - -const ButtonContainer = styled.div` - display: flex; - justify-content: center; - gap: 5px; - align-items: center; - margin: 0 20px 0 0; -`; - -const WelcomeText = styled.div` - display: flex; - align-items: center; - justify-content: center; - font-size: 2rem; - color: var(--color-header-button); -`; - export default function Header() { const { user, isLoggedIn, logoutUser, toggleDarkMode, theme } = useCalendar(); @@ -57,10 +32,10 @@ export default function Header() { return ( <> - +
{isLoggedIn ? ( - +
@@ -73,18 +48,18 @@ export default function Header() { )} - +
) : ( - +
- +
)} - +
); } diff --git a/src/components/LoginForm.jsx b/src/components/LoginForm.jsx index 866e109..0cff8af 100644 --- a/src/components/LoginForm.jsx +++ b/src/components/LoginForm.jsx @@ -1,5 +1,5 @@ "use client"; -import styled from "styled-components"; + import { useCalendar } from "@/context/CalendarContext"; import { useState } from "react"; import { useRouter } from "next/navigation"; @@ -7,38 +7,6 @@ import Button from "@/components/Button"; import Link from "next/link"; import RedirectPath from "@/components/Redirect"; -const LoginWrapper = styled.div` - display: flex; - justify-content: space-evenly; - align-items: center; - height: 100%; - flex-direction: column; - width: 300px; -`; - -const LoginFormWrapper = styled.div` - height: auto; - padding: 20px; - background-color: var(--color-toolbar-bg); - display: flex; - justify-content: center; - align-items: center; - border-radius: 15px; -`; - -const InputBoxes = styled.input` - padding: 10px; - font-size: 1.2rem; - width: 100%; - margin: 10px 0; - border-radius: 5px; - border: none; - - &:focus { - border: none; - } -`; - export default function LoginForm() { const { loginUser } = useCalendar(); const [loginData, setLoginData] = useState({ @@ -73,7 +41,6 @@ export default function LoginForm() { console.error(error); return; } - if (data.user) { loginUser(data.user); setLoginData({ username: "", password: "" }); @@ -91,22 +58,14 @@ export default function LoginForm() { return ( <> - +
-

Login

- -
- Login +
+ + - - - +
- {error && ( -

- {error} -

- )} -
+ {error &&

{error}

} +
Don't have an account?{" "} - + Create one!
- +
); } diff --git a/src/components/ModalButton.jsx b/src/components/ModalButton.jsx index 0d78002..53284a2 100644 --- a/src/components/ModalButton.jsx +++ b/src/components/ModalButton.jsx @@ -1,32 +1,17 @@ -import styled from "styled-components"; -const ButtonWrapper = styled.button` - display: flex; - align-items: center; - justify-content: center; - text-align: center; - font-size: 1.1rem; - border: none; - background-color: var(--color-modal-button); - padding: 15px; - border-radius: 15px; - cursor: pointer; - width: auto; - color: var(--color-modal-text); - transition: background-color 0.2s ease, color 0.2s ease; - - &:hover { - background-color: var(--color-modal-button-hover); - color: var(--color-modal-text); - } -`; - -export default function ModalButton({ children, type = "button", ...props }) { +export default function ModalButton({ + children, + type = "button", + className = "", + ...props +}) { return ( - <> - - {children} - - + ); } diff --git a/src/components/RegisterForm.jsx b/src/components/RegisterForm.jsx index 9e0124c..64fe2e9 100644 --- a/src/components/RegisterForm.jsx +++ b/src/components/RegisterForm.jsx @@ -1,5 +1,5 @@ "use client"; -import styled from "styled-components"; + import { useState } from "react"; import { useRouter } from "next/navigation"; import { useCalendar } from "@/context/CalendarContext"; @@ -7,38 +7,6 @@ import Button from "@/components/Button"; import Link from "next/link"; import RedirectPath from "@/components/Redirect"; -const RegisterWrapper = styled.div` - display: flex; - justify-content: space-evenly; - align-items: center; - height: 100%; - flex-direction: column; - width: 300px; -`; - -const RegisterFormWrapper = styled.div` - height: auto; - padding: 20px; - background-color: var(--color-toolbar-bg); - display: flex; - justify-content: center; - align-items: center; - border-radius: 15px; -`; - -const InputBoxes = styled.input` - padding: 10px; - font-size: 1.2rem; - width: 100%; - margin: 10px 0; - border-radius: 5px; - border: none; - - &:focus { - border: none; - } -`; - export default function RegisterForm() { const { loginUser } = useCalendar(); @@ -103,85 +71,53 @@ export default function RegisterForm() { return ( <> - +
-
-

- Register -

- -
- - - - - -
+

Register

+
+
+ + + + +
- {error && ( -

- {error} -

- )} -
+ {error &&

{error}

} +
Already have an account?{" "} - - Log in! + + Login!
-
- +
+
); } diff --git a/src/components/SearchBar.jsx b/src/components/SearchBar.jsx index 8ccf7cc..6997a1e 100644 --- a/src/components/SearchBar.jsx +++ b/src/components/SearchBar.jsx @@ -1,28 +1,5 @@ "use client"; import { useCalendar } from "@/context/CalendarContext"; -import styled from "styled-components"; - -const SearchBarWrapper = styled.div` - width: 100%; - height: auto; - margin: 5px 0 10px 0; - display: flex; - align-items: center; - justify-content: center; -`; - -const Search = styled.input` - font-size: 1.3rem; - width: 100%; - max-width: 1200px; - padding: 10px; - border-radius: 5px; - border: 2px solid black; - - &:focus { - outline: none; - } -`; export default function SearchBar() { const { user, setResult, searchTerm, setSearchTerm } = useCalendar(); @@ -47,14 +24,15 @@ export default function SearchBar() { return ( <> - - + - +
); } diff --git a/src/components/Sidebar.jsx b/src/components/Sidebar.jsx index 2d1d60e..be6f1d7 100644 --- a/src/components/Sidebar.jsx +++ b/src/components/Sidebar.jsx @@ -2,75 +2,9 @@ import { useCalendar } from "@/context/CalendarContext"; import Link from "next/link"; import { useRouter } from "next/navigation"; -import styled from "styled-components"; - -const SidebarWrapper = styled.div` - display: flex; - align-items: center; - justify-content: flex-start; - height: 80%; - background-color: lavender; - border-radius: 8px; - box-shadow: 4px 6px 5px 3px rgba(0, 0, 0, 0.1); - min-width: 130px; - max-width: 130px; - flex-flow: column nowrap; - margin: 10px 0 0 10px; -`; - -const SidebarTabContainer = styled.div` - display: flex; - justify-content: flex-start; - align-items: center; - flex-flow: column nowrap; - width: 100%; - gap: 5px; - height: 90%; -`; - -const SidebarTab = styled(Link)` - display: flex; - justify-content: left; - align-items: center; - padding: 3px; - width: 100%; - border: 1px solid white; - height: 40px; - color: black; - background-color: rgb(187, 151, 194); - cursor: pointer; - border-radius: 7px; - - &:first-of-type { - margin-top: 10px; - } - - &:hover { - background-color: rgb(149, 114, 156) - } -`; - -const SidebarTabDiv = styled.button` - display: flex; - justify-content: left; - align-items: center; - padding: 3px; - width: 100%; - border: 1px solid white; - height: 40px; - color: black; - background-color: rgb(187, 151, 194); - cursor: pointer; - border-radius: 7px; - font-size: 1rem; - - &:hover { - background-color: rgb(149, 114, 156) - } -`; export default function Sidebar() { - const { isLoggedIn, logoutUser, toggleDarkMode} = useCalendar(); + const { isLoggedIn, logoutUser, toggleDarkMode } = useCalendar(); const router = useRouter(); @@ -96,27 +30,36 @@ export default function Sidebar() { return ( <> - - - Calendar - Contacts - +
+
+ + Calendar + + + Contacts + {isLoggedIn ? ( - { handleLogout(); }} > Logout - + ) : ( <> - Login - Create account + + Login + + + Create account + - )} - - + )} + +
+
); } diff --git a/src/components/Square.jsx b/src/components/Square.jsx index 6b2659e..dcd33f5 100644 --- a/src/components/Square.jsx +++ b/src/components/Square.jsx @@ -1,69 +1,32 @@ "use client"; -import styled from "styled-components"; + import Image from "next/image"; import Link from "next/link"; -const SquareWrapper = styled.div` - width: auto; - display: flex; - justify-content: center; - align-items: center; -`; - -const SquareContent = styled.div` - display: flex; - align-items: center; - justify-content: center; - position: relative; - overflow: hidden; - background-color: rgba(0, 0, 0, 0); - width: 100%; - height: 100%; - border-radius: 8px; - box-shadow: 4px 6px 5px 3px rgba(0, 0, 0, 0); -`; - export default function Square() { return ( <> - - - {/* Planz Logo */} +
+
Planz Calendar Logo - -
+
Planz Text Logo
- - +
+
); } diff --git a/src/components/UserOnEventInModal.jsx b/src/components/UserOnEventInModal.jsx index f60ba93..7bbe022 100644 --- a/src/components/UserOnEventInModal.jsx +++ b/src/components/UserOnEventInModal.jsx @@ -1,82 +1,20 @@ "use client"; -import styled from "styled-components"; -const TabWrapper = styled.div` - width: 100%; - display: flex; - background-color: ${({ isSelected }) => - isSelected - ? "var(--color-selected-contact-bg)" - : "var(--color-notselected-contact-bg)"}; - color: #fff; - transition: background-color 0.2s ease; -`; - -const UserContactIconWrapper = styled.div` - min-width: 13%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - padding: 7px 20px 7px 15px; - color: var(--color-contacts-text); -`; - -const UserContactIcon = styled.button` - border: none; - height: 40px; - width: 40px; - border-radius: 30px; - display: flex; - justify-content: center; - align-items: center; - background-color: var(--color-user-icon); - color: var(--color-contacts-icon-text); -`; - -const ContactSnippetWrapper = styled.div` - display: flex; - justify-content: left; - align-items: center; - flex-grow: 1; - font-size: 1.2rem; - font-weight: 500; - padding: 10px; -`; - -const ContactSnippet = styled.div` - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; - text-overflow: ellipsis; - color: var(--color-contacts-text); -`; - -const ContactFunctionWrapper = styled.div` - display: flex; - justify-content: center; - align-items: center; - width: auto; - height: 100%; - position: relative; -`; - - -export default function UserOnEventInModal({ user }) { - - return ( - - - - {user.username?.slice(0, 2).toUpperCase()} - - - - - {user.username} - - - - ); -} \ No newline at end of file +export default function UserOnEventInModal({ user, isSelected }) { + return ( +
+
+ +
+
+
{user.username}
+
+
+ ); +} diff --git a/src/styles/_custom-calendar.scss b/src/styles/_custom-calendar.scss new file mode 100644 index 0000000..5dbbde5 --- /dev/null +++ b/src/styles/_custom-calendar.scss @@ -0,0 +1,163 @@ +.rbc-toolbar { + background-color: var(--color-toolbar-bg); + color: var(--color-toolbar-label); + padding: 1rem; + font-size: 1.2rem; + border-radius: 9px; + display: flex; +} + +.rbc-toolbar-label { + font-size: 1.6rem; + font-weight: 700; + margin: 10px 0; +} + +.rbc-event, +.rbc-event:focus, +.rbc-event.rbc-selected { + border-radius: 8px; + padding: 4px; + font-size: 0.9rem; + background-color: var(--color-calendar-event-bg); + color: var(--color-calendar-event-text); + width: 90%; + margin-left: 6px; +} + +.rbc-today { + border: 2px solid var(--color-calendar-border); +} + +.rbc-month-view { + border-radius: 9px; + border: none; + background-color: var(--color-calendar-bg); + padding: 0 8px 8px 8px; + gap: 4px; +} + +.rbc-month-row { + border-top: none !important; +} + +.rbc-month-row:last-of-type .rbc-row-bg .rbc-day-bg:first-of-type { + border-bottom-left-radius: 9px; +} + +.rbc-month-row:last-of-type .rbc-row-bg .rbc-day-bg:last-of-type { + border-bottom-right-radius: 9px; +} + +.rbc-day-bg { + background-color: var(--color-calendar-numbers); + border-bottom-left-radius: 15px; + border-bottom-right-radius: 15px; + border-top-left-radius: 15px; + border-top-right-radius: 7px; + max-width: none; + height: 100%; +} + +.rbc-date-cell { + margin: auto; +} + +.rbc-calendar { + border-radius: 9px; + background-color: var(--color-calendar-bg); +} + +.rbc-header { + background-color: var(--color-calendar-numbers); + color: var(--color-calendar-border); + font-size: 1rem; + border-radius: 15px; + height: auto; + text-align: center; + display: flex; + align-items: center; + justify-content: center; + max-width: none; + margin: 1px 3px; + padding: 3px; +} + +.rbc-time-slot { + color: black; +} + +.rbc-time-view { + background-color: rgb(216, 216, 216); +} + +.rbc-allday-cell .rbc-row-bg { + padding: 2px; +} + +.rbc-month-header, +.rbc-row-bg, +.rbc-row { + display: flex; + justify-content: stretch; + align-items: stretch; +} + +.rbc-month-header, +.rbc-row-content, +.rbc-row-bg, +.rbc-month-view { + gap: 4px; +} + +.rbc-row-content { + width: 99.5%; +} + +.rbc-current button.rbc-button-link { + font-size: 1rem; + font-weight: 600; + padding: 3px; +} + +.rbc-toolbar button { + background-color: var(--color-toolbar-button); + color: var(--color-toolbar-text); + font-weight: normal; + transition: background-color 0.2s ease, color 0.2s ease; + border: 1px solid #ccc; + padding: 6px 12px; + font-size: 0.9rem; +} + +.rbc-toolbar button.rbc-active { + background-color: var(--color-toolbar-button-active) !important; + color: var(--color-toolbar-label); + font-weight: 600; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.2); +} + +.rbc-toolbar button:hover { + background-color: var(--color-toolbar-button-hover); + color: var(--color-toolbar-label); +} + +.rbc-toolbar button.rbc-active:hover { + background-color: var(--color-toolbar-button-active) !important; + color: var(--color-toolbar-label); +} + +.rbc-button-link { + color: var(--color-calendar-border); + font-weight: 500; + font-size: 0.9rem; +} + +@media (max-width: 875px) { + .rbc-toolbar { + flex-direction: column; + } + .rbc-toolbar-label { + margin: 10px 0; + } +} diff --git a/src/styles/common/_button.scss b/src/styles/common/_button.scss new file mode 100644 index 0000000..39d42ba --- /dev/null +++ b/src/styles/common/_button.scss @@ -0,0 +1,44 @@ +.button { + + &__modal-button { + display: flex; + align-items: center; + justify-content: center; + text-align: center; + font-size: 1.1rem; + border: none; + background-color: var(--color-modal-button); + padding: 15px; + border-radius: 15px; + cursor: pointer; + width: auto; + color: var(--color-modal-text); + transition: background-color 0.2s ease, color 0.2s ease; + + &:hover { + background-color: var(--color-modal-button-hover); + color: var(--color-modal-text); + } + } + + &__button_wrapper { + display: flex; + align-items: center; + justify-content: center; + text-align: center; + font-size: 1.1rem; + border: none; + background-color: var(--color-header-button); + padding: 15px; + border-radius: 15px; + cursor: pointer; + width: auto; + color: var(--color-header-text); + transition: background-color 0.2s ease, color 0.2s ease; + + &:hover { + background-color: var(--color-header-button-hover); + color: var(--color-header-text-hover); + } + } +} diff --git a/src/styles/common/_calendar.scss b/src/styles/common/_calendar.scss new file mode 100644 index 0000000..993a5bd --- /dev/null +++ b/src/styles/common/_calendar.scss @@ -0,0 +1,58 @@ +.calendar { + + &__square-wrapper { + width: auto; + display: flex; + justify-content: center; + align-items: center; + } + + &__square-content { + display: flex; + align-items: center; + justify-content: center; + position: relative; + overflow: hidden; + background-color: rgba(0, 0, 0, 0); + width: 100%; + height: 100%; + border-radius: 8px; + box-shadow: 4px 6px 5px 3px rgba(0, 0, 0, 0); + } + + &__logo { + object-fit: contain; + padding: 10px; + } + + &__square-logo-text { + display: flex; + align-content: flex-end; + height: 100%; + margin-left: 10px; + } + + &__wrapper { + display: flex; + justify-content: center; + align-items: flex-start; + height: 75vh; + width: 90vw; + padding: 10px; + box-sizing: border-box; + } + + &__sizing { + flex-grow: 1; + width: 100%; + max-width: 1200px; + height: 100%; + } + + &__component { + min-height: 494px; + height: 100%; + min-width: 452px; + box-shadow: 2px 3px 6px 4px rgba(0, 0, 0, 0.1); + } +} diff --git a/src/styles/common/_contacts.scss b/src/styles/common/_contacts.scss new file mode 100644 index 0000000..bf7e82d --- /dev/null +++ b/src/styles/common/_contacts.scss @@ -0,0 +1,157 @@ +.contacts { + + &__tab-wrapper { + width: 100%; + display: flex; + background-color: var(--color-toolbar-label); + color: #fff; + } + + &__user-contact-icon-wrapper { + min-width: 13%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + padding: 7px 20px 7px 15px; + color: var(--color-contacts-text); + } + + &__user-contact-icon { + height: 60px; + width: 60px; + border-radius: 30px; + display: flex; + justify-content: center; + align-items: center; + font-size: 1.1rem; + background-color: var(--color-user-icon); + color: var(--color-contacts-icon-text); + } + + &__contact-snippet-wrapper { + display: flex; + justify-content: left; + align-items: center; + flex-grow: 1; + font-size: 1.2rem; + font-weight: 500; + padding: 10px; + } + + &__contact-snippet { + display: -webkit-box; + -webkit-line-clamp: 2; + line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + color: var(--color-contacts-text); + } + + &__add-contact-button { + border: 0; + background-color: inherit; + font-size: 1.6rem; + width: auto; + padding: 0 10px; + cursor: pointer; + margin: 0 10px; + } + + &__contact-function-wrapper { + display: flex; + justify-content: center; + align-items: center; + width: 10%; + height: 100%; + position: relative; + } + + &__delete-contact-btn { + border: none; + background-color: rgba(0, 0, 0, 0); + } + + &__delete-contact-icon { + margin: 0 10px; + object-fit: contain; + cursor: pointer; + } + + &__delete-contact-icon--selected { + opacity: 1; + transform: rotate(0deg); + } + + &__delete-contact-icon--notselected { + opacity: 0.4; + transform: rotate(20deg); + } + + &__component-wrapper { + display: flex; + justify-content: space-between; + align-items: center; + height: 95%; + flex-flow: column; + width: 60%; + } + + &__contacts-section-wrapper { + flex-flow: column nowrap; + width: 100%; + height: 100%; + max-width: 1200px; + box-sizing: border-box; + border: 2px solid black; + border-radius: 8px; + overflow: hidden; + background-color: var(--color-contacts-container-bg); + color: var(--color-contacts-text); + overflow-y: auto; + margin-bottom: 40px; + } + + &__contacts-section-wrapper::-webkit-scrollbar { + border-bottom-right-radius: 8px; + border-top-right-radius: 8px; + } + + &__tabs-layout { + border-bottom: 1px solid black; + width: 100%; + height: auto; + display: flex; + } + + &__empty-info-wrapper { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + font-size: 1.4rem; + text-align: center; + } + + &__contacts-empty-message { + padding: 20px; + } + + &__text-container-left-align { + display: flex; + justify-content: left; + align-items: center; + text-align: left; + width: 100%; + } + + &__contacts-title { + padding-top: 20px; + } + + &__contacts-searchbar-container { + width: 100%; + } +} diff --git a/src/styles/common/_event_modal.scss b/src/styles/common/_event_modal.scss new file mode 100644 index 0000000..6b6a5ff --- /dev/null +++ b/src/styles/common/_event_modal.scss @@ -0,0 +1,151 @@ +.modal { + + &__delete-modal-text-container { + width: 300px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + &__delete-modal-title { + padding-bottom: 5px; + } + + &__delete-modal-event-title { + display: flex; + justify-content: center; + width: 100%; + padding: 0 0 15px 0; + font-weight: bold; + font-size: 1.2rem; + } + + &__delete-modal-label { + padding: 5px 0; + } + + &__delete-modal-event-date { + display: flex; + justify-content: center; + width: 100%; + padding: 0 0 15px 0; + font-weight: bold; + font-size: 1.2rem; + } + + &__delete-modal-no-contacts { + display: flex; + justify-content: center; + background-color: #fff; + width: auto; + padding: 0 0 15px 0; + font-size: 1rem; + font-weight: bold; + text-align: center; + } + + &__modal-wrapper { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + } + + &__modal-form { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + width: 70%; + } + + &__modal-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + z-index: 10; + } + + &__modal-button-wrapper { + display: flex; + justify-content: space-evenly; + align-items: center; + width: 100%; + } + + &__modal-form-container { + display: flex; + justify-content: space-evenly; + align-items: center; + flex-flow: column nowrap; + background-color: white; + height: auto; + width: 60%; + padding: 30px; + border-radius: 10px; + min-width: 315px; + } + + &__text-container-left-align { + display: flex; + justify-content: left; + align-items: center; + text-align: left; + width: 80%; + } + + &__title-bar { + width: 80%; + font-size: 1.1rem; + margin: 0 0 20px 0; + } + + &__add-dates-containers { + display: flex; + justify-content: space-between; + width: 80%; + flex-flow: row nowrap; + } + + @media (max-width: 1588px) { + &__add-dates-containers { + flex-flow: column nowrap; + } + } + + &__start-time-bar { + width: auto; + font-size: 1.1rem; + margin: 0 0 20px 0; + } + + @media (max-width: 1588px) { + &__start-time-bar { + width: 100%; + } + } + + &__end-time-bar { + width: auto; + font-size: 1.1rem; + margin: 0 0 20px 0; + } + + @media (max-width: 1588px) { + &__end-time-bar { + width: 100%; + } + } + + &__contacts-added-container { + width: 80%; + max-height: 220px; + background-color: #fff; + margin: 0 0 20px 0; + overflow-y: auto; + } +} diff --git a/src/styles/common/_header.scss b/src/styles/common/_header.scss new file mode 100644 index 0000000..b8597e5 --- /dev/null +++ b/src/styles/common/_header.scss @@ -0,0 +1,26 @@ +.header { + + &__wrapper { + height: auto; + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + } + + &__button-container { + display: flex; + justify-content: center; + gap: 5px; + align-items: center; + margin: 0 20px 0 0; + } + + &__welcome-text { + display: flex; + align-items: center; + justify-content: center; + font-size: 2rem; + color: var(--color-header-button); + } +} diff --git a/src/styles/common/_login.scss b/src/styles/common/_login.scss new file mode 100644 index 0000000..0427ee1 --- /dev/null +++ b/src/styles/common/_login.scss @@ -0,0 +1,68 @@ +.login { + + &__wrapper { + display: flex; + justify-content: space-evenly; + align-items: center; + height: 100%; + flex-direction: column; + width: 300px; + } + + &__form-wrapper { + height: auto; + padding: 20px; + background-color: var(--color-toolbar-bg); + display: flex; + justify-content: center; + align-items: center; + border-radius: 15px; + } + + &__input-boxes { + padding: 10px; + font-size: 1.2rem; + width: 100%; + margin: 10px 0; + border-radius: 5px; + border: none; + } + + &__input-boxes:focus { + border: none; + } + + &__title { + font-size: 2.8rem; + margin-bottom: 10px; + } + + &__form { + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-evenly; + align-items: center; + } + + &__btn { + margin-top: 20px; + width: 100%; + font-weight: 600; + } + + &__error { + display: flex; + justify-content: center; + align-items: center; + text-align: center; + color: var(--color-error-text); + margin-top: 20px; + } + + &__register-link { + margin-top: 20px; + width: 100%; + text-align: center; + } +} diff --git a/src/styles/common/_register.scss b/src/styles/common/_register.scss new file mode 100644 index 0000000..a095b32 --- /dev/null +++ b/src/styles/common/_register.scss @@ -0,0 +1,67 @@ +.register { + &__wrapper { + display: flex; + justify-content: space-evenly; + align-items: center; + height: 100%; + flex-direction: column; + width: 300px; + } + + &__form-wrapper { + height: auto; + padding: 20px; + background-color: var(--color-toolbar-bg); + display: flex; + justify-content: center; + align-items: center; + border-radius: 15px; + } + + &__input-boxes { + padding: 10px; + font-size: 1.2rem; + width: 100%; + margin: 10px 0; + border-radius: 5px; + border: none; + + &:focus { + border: none; + } + } + + &__title { + font-size: 2.8rem; + margin-bottom: 10px; + } + + &__form { + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-evenly; + align-items: center; + } + + &__btn { + margin-top: 20px; + width: 100%; + font-weight: 600; + } + + &__error { + display: flex; + justify-content: center; + align-items: center; + text-align: center; + color: var(--color-error-text); + margin-top: 20px; + } + + &__login-link { + margin-top: 20px; + width: 100%; + text-align: center; + } +} diff --git a/src/styles/common/_searchbar.scss b/src/styles/common/_searchbar.scss new file mode 100644 index 0000000..60b6f36 --- /dev/null +++ b/src/styles/common/_searchbar.scss @@ -0,0 +1,24 @@ +.searchbar { + + &__wrapper { + width: 100%; + height: auto; + margin: 5px 0 10px 0; + display: flex; + align-items: center; + justify-content: center; + } + + &__input { + font-size: 1.3rem; + width: 100%; + max-width: 1200px; + padding: 10px; + border-radius: 5px; + border: 2px solid black; + + &:focus { + outline: none; + } + } +} diff --git a/src/styles/common/_sidebar.scss b/src/styles/common/_sidebar.scss new file mode 100644 index 0000000..5ed923a --- /dev/null +++ b/src/styles/common/_sidebar.scss @@ -0,0 +1,48 @@ +.sidebar { + + &__wrapper { + display: flex; + align-items: center; + justify-content: flex-start; + height: 80%; + background-color: lavender; + border-radius: 8px; + box-shadow: 4px 6px 5px 3px rgba(0, 0, 0, 0.1); + min-width: 130px; + max-width: 130px; + flex-flow: column nowrap; + margin: 10px 0 0 10px; + } + + &__tab-container { + display: flex; + justify-content: flex-start; + align-items: center; + flex-flow: column nowrap; + width: 100%; + gap: 5px; + height: 90%; + } + + &__tab { + display: flex; + justify-content: left; + align-items: center; + padding: 3px; + width: 100%; + border: 1px solid white; + height: 40px; + color: black; + background-color: rgb(187, 151, 194); + cursor: pointer; + border-radius: 7px; + font-size: 1rem; + } + + &__tab:first-of-type { + margin-top: 10px; + &:hover { + background-color: rgb(149, 114, 156); + } + } +} diff --git a/src/styles/custom-calendar.css b/src/styles/custom-calendar.css deleted file mode 100644 index 23a169f..0000000 --- a/src/styles/custom-calendar.css +++ /dev/null @@ -1,70 +0,0 @@ -.rbc-toolbar { - background-color: var(--color-toolbar-bg); - color: var(--color-toolbar-label); - padding: 1rem; - font-size: 1.2rem; - border-radius: 9px; -} - -.rbc-event { - border-radius: 8px; - padding: 4px; - font-size: 0.9rem; - background-color: var(--color-event-bg); - color: var(--color-event-text); -} - -.rbc-today { - border: 1px solid var(--color-today-border); -} - -.rbc-month-view { - border-radius: 9px; -} - -.rbc-month-row:last-of-type .rbc-row-bg .rbc-day-bg:first-of-type { - border-bottom-left-radius: 9px; -} - -.rbc-month-row:last-of-type .rbc-row-bg .rbc-day-bg:last-of-type { - border-bottom-right-radius: 9px; -} - -.rbc-day-bg { - background-color: var(--color-calendar-bg); - border: 1px solid var(--color-calendar-border); -} - -.rbc-calendar { - border-radius: 9px; -} - -.rbc-header { - background-color: var(--color-header-bg); -} - -.rbc-toolbar button { - background-color: var(--color-toolbar-button); - color: var(--color-toolbar-label); - border: 1px solid #ccc; - padding: 6px 12px; - transition: background-color 0.2s ease; -} - -.rbc-toolbar button.rbc-active { - background-color: var(--color-toolbar-button-active); - color: var(--color-toolbar-label); - font-weight: 600; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.2); -} - -.rbc-toolbar button.rbc-active:hover, -.rbc-toolbar button:hover { - background-color: var(--color-toolbar-button-hover); - color: var(--color-toolbar-label); -} - -.rbc-toolbar-label { - font-size: 1.6rem; - font-weight: 700; -} diff --git a/src/styles/main.scss b/src/styles/main.scss new file mode 100644 index 0000000..91f9335 --- /dev/null +++ b/src/styles/main.scss @@ -0,0 +1,10 @@ +@import './common/_header.scss'; +@import './common/_button.scss'; +@import './common/_calendar.scss'; +@import './common/_contacts.scss'; +@import './common/_event_modal.scss'; +@import './common/_login.scss'; +@import './common/_register.scss'; +@import './common/_searchbar.scss'; +@import './common/_sidebar.scss'; +@import './_custom-calendar.scss';