many coloring changes and improvements

This commit is contained in:
Daniel 2023-08-11 01:11:02 -04:00
parent 1eb1467a02
commit 7da89a35e2
37 changed files with 189 additions and 178 deletions

View File

@ -11,9 +11,7 @@ type Props = {
export default function Checkbox({ label, state, className, onClick }: Props) { export default function Checkbox({ label, state, className, onClick }: Props) {
return ( return (
<label <label className={`cursor-pointer flex items-center gap-2 ${className}`}>
className={`cursor-pointer flex items-center gap-2 text-sky-700 ${className}`}
>
<input <input
type="checkbox" type="checkbox"
checked={state} checked={state}
@ -22,13 +20,15 @@ export default function Checkbox({ label, state, className, onClick }: Props) {
/> />
<FontAwesomeIcon <FontAwesomeIcon
icon={faSquareCheck} icon={faSquareCheck}
className="w-5 h-5 text-sky-700 peer-checked:block hidden" className="w-5 h-5 text-sky-500 dark:text-sky-300 peer-checked:block hidden"
/> />
<FontAwesomeIcon <FontAwesomeIcon
icon={faSquare} icon={faSquare}
className="w-5 h-5 text-sky-700 peer-checked:hidden block" className="w-5 h-5 text-sky-500 dark:text-sky-300 peer-checked:hidden block"
/> />
<span className="text-sky-900 rounded select-none">{label}</span> <span className="text-black dark:text-white rounded select-none">
{label}
</span>
</label> </label>
); );
} }

View File

@ -42,14 +42,14 @@ export default function CollectionCard({ collection, className }: Props) {
<FontAwesomeIcon <FontAwesomeIcon
icon={faEllipsis} icon={faEllipsis}
id={"expand-dropdown" + collection.id} id={"expand-dropdown" + collection.id}
className="w-5 h-5 text-gray-500 dark:text-sky-500" className="w-5 h-5 text-gray-500 dark:text-white"
/> />
</div> </div>
<Link <Link
href={`/collections/${collection.id}`} href={`/collections/${collection.id}`}
className="flex flex-col gap-2 justify-between min-h-[12rem] h-full select-none p-5" className="flex flex-col gap-2 justify-between min-h-[12rem] h-full select-none p-5"
> >
<p className="text-2xl font-bold capitalize text-sky-700 dark:text-sky-300 break-words line-clamp-3 w-4/5"> <p className="text-2xl font-bold capitalize text-black dark:text-white break-words line-clamp-3 w-4/5">
{collection.name} {collection.name}
</p> </p>
<div className="flex justify-between items-center"> <div className="flex justify-between items-center">
@ -73,11 +73,14 @@ export default function CollectionCard({ collection, className }: Props) {
) : null} ) : null}
</div> </div>
<div className="text-right w-40"> <div className="text-right w-40">
<div className="text-sky-700 dark:text-sky-400 font-bold text-sm flex justify-end gap-1 items-center"> <div className="text-black dark:text-white font-bold text-sm flex justify-end gap-1 items-center">
<FontAwesomeIcon icon={faLink} className="w-5 h-5 text-sky-500 dark:text-sky-300" /> <FontAwesomeIcon
icon={faLink}
className="w-5 h-5 text-black dark:text-white"
/>
{collection._count && collection._count.links} {collection._count && collection._count.links}
</div> </div>
<div className="flex items-center justify-end gap-1 text-gray-600 dark:text-sky-500"> <div className="flex items-center justify-end gap-1 text-gray-600 dark:text-white">
<FontAwesomeIcon icon={faCalendarDays} className="w-4 h-4" /> <FontAwesomeIcon icon={faCalendarDays} className="w-4 h-4" />
<p className="font-bold text-xs">{formattedDate}</p> <p className="font-bold text-xs">{formattedDate}</p>
</div> </div>

View File

@ -31,9 +31,7 @@ export default function Dropdown({ onClickOutside, className, items }: Props) {
const inner = e && ( const inner = e && (
<div className="cursor-pointer rounded-md"> <div className="cursor-pointer rounded-md">
<div className="flex items-center gap-2 py-1 px-2 hover:bg-slate-200 duration-100"> <div className="flex items-center gap-2 py-1 px-2 hover:bg-slate-200 duration-100">
<p className="text-sky-900 dark:text-sky-400 select-none"> <p className="text-black dark:text-white select-none">{e.name}</p>
{e.name}
</p>
</div> </div>
</div> </div>
); );

View File

@ -20,9 +20,11 @@ export default function FilterSearchDropdown({
const target = e.target as HTMLInputElement; const target = e.target as HTMLInputElement;
if (target.id !== "filter-dropdown") setFilterDropdown(false); if (target.id !== "filter-dropdown") setFilterDropdown(false);
}} }}
className="absolute top-8 right-0 border border-sky-100 shadow-md bg-gray-50 rounded-md p-2 z-20 w-40" className="absolute top-8 right-0 border border-sky-100 dark:border-sky-800 shadow-md bg-gray-50 dark:bg-sky-900 rounded-md p-2 z-20 w-40"
> >
<p className="mb-2 text-sky-900 text-center font-semibold">Filter by</p> <p className="mb-2 text-black dark:text-white text-center font-semibold">
Filter by
</p>
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
<Checkbox <Checkbox
label="Name" label="Name"

View File

@ -114,7 +114,7 @@ export default function LinkCard({ link, count, className }: Props) {
<div <div
onClick={() => setExpandDropdown(!expandDropdown)} onClick={() => setExpandDropdown(!expandDropdown)}
id={"expand-dropdown" + link.id} id={"expand-dropdown" + link.id}
className="text-gray-500 dark:text-sky-400 inline-flex rounded-md cursor-pointer hover:bg-slate-200 absolute right-5 top-5 z-10 duration-100 p-1" className="text-gray-500 dark:text-white inline-flex rounded-md cursor-pointer hover:bg-slate-200 absolute right-5 top-5 z-10 duration-100 p-1"
> >
<FontAwesomeIcon <FontAwesomeIcon
icon={faEllipsis} icon={faEllipsis}
@ -156,8 +156,10 @@ export default function LinkCard({ link, count, className }: Props) {
<div className="flex justify-between gap-5 w-full h-full z-0"> <div className="flex justify-between gap-5 w-full h-full z-0">
<div className="flex flex-col justify-between w-full"> <div className="flex flex-col justify-between w-full">
<div className="flex items-baseline gap-1"> <div className="flex items-baseline gap-1">
<p className="text-sm text-sky-500 dark:text-sky-200 font-bold">{count + 1}.</p> <p className="text-sm text-black dark:text-white font-bold">
<p className="text-lg text-sky-700 dark:text-sky-200 font-bold truncate capitalize w-full pr-8"> {count + 1}.
</p>
<p className="text-lg text-black dark:text-white font-bold truncate capitalize w-full pr-8">
{link.name || link.description} {link.name || link.description}
</p> </p>
</div> </div>
@ -168,16 +170,16 @@ export default function LinkCard({ link, count, className }: Props) {
className="w-4 h-4 mt-1 drop-shadow" className="w-4 h-4 mt-1 drop-shadow"
style={{ color: collection?.color }} style={{ color: collection?.color }}
/> />
<p className="text-sky-900 dark:text-sky-300 truncate capitalize"> <p className="text-black dark:text-white truncate capitalize">
{collection?.name} {collection?.name}
</p> </p>
</div> </div>
</div> </div>
<div className="flex items-center gap-1 w-full pr-20 text-gray-500 dark:text-sky-500"> <div className="flex items-center gap-1 w-full pr-20 text-gray-500 dark:text-white">
<FontAwesomeIcon icon={faLink} className="mt-1 w-4 h-4" /> <FontAwesomeIcon icon={faLink} className="mt-1 w-4 h-4" />
<p className="truncate w-full">{shortendURL}</p> <p className="truncate w-full">{shortendURL}</p>
</div> </div>
<div className="flex items-center gap-1 text-gray-500 dark:text-sky-500"> <div className="flex items-center gap-1 text-gray-500 dark:text-white">
<FontAwesomeIcon icon={faCalendarDays} className="w-4 h-4" /> <FontAwesomeIcon icon={faCalendarDays} className="w-4 h-4" />
<p>{formattedDate}</p> <p>{formattedDate}</p>
</div> </div>

View File

@ -60,7 +60,7 @@ export default function CollectionInfo({
<div className="flex flex-col gap-3 sm:w-[35rem] w-80"> <div className="flex flex-col gap-3 sm:w-[35rem] w-80">
<div className="flex flex-col sm:flex-row gap-3"> <div className="flex flex-col sm:flex-row gap-3">
<div className="w-full"> <div className="w-full">
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2"> <p className="text-sm text-black dark:text-white mb-2">
Name Name
<RequiredBadge /> <RequiredBadge />
</p> </p>
@ -76,7 +76,7 @@ export default function CollectionInfo({
/> />
<div className="color-picker flex justify-between"> <div className="color-picker flex justify-between">
<div className="flex flex-col justify-between items-center w-32"> <div className="flex flex-col justify-between items-center w-32">
<p className="text-sm w-full text-sky-700 dark:text-sky-400 mb-2"> <p className="text-sm w-full text-black dark:text-white mb-2">
Icon Color Icon Color
</p> </p>
<div style={{ color: collection.color }}> <div style={{ color: collection.color }}>
@ -86,7 +86,7 @@ export default function CollectionInfo({
/> />
</div> </div>
<div <div
className="py-1 px-2 rounded-md text-xs font-semibold cursor-pointer text-sky-700 dark:text-sky-400 hover:bg-slate-200 duration-100" className="py-1 px-2 rounded-md text-xs font-semibold cursor-pointer text-black dark:text-white hover:bg-slate-200 duration-100"
onClick={() => onClick={() =>
setCollection({ ...collection, color: "#0ea5e9" }) setCollection({ ...collection, color: "#0ea5e9" })
} }
@ -103,9 +103,7 @@ export default function CollectionInfo({
</div> </div>
<div className="w-full"> <div className="w-full">
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2"> <p className="text-sm text-black dark:text-white mb-2">Description</p>
Description
</p>
<textarea <textarea
className="w-full h-[11.4rem] resize-none border rounded-md duration-100 bg-white dark:bg-sky-950 p-3 outline-none border-sky-100 dark:border-sky-800 focus:border-sky-700" className="w-full h-[11.4rem] resize-none border rounded-md duration-100 bg-white dark:bg-sky-950 p-3 outline-none border-sky-100 dark:border-sky-800 focus:border-sky-700"
placeholder="The purpose of this Collection..." placeholder="The purpose of this Collection..."

View File

@ -50,7 +50,7 @@ export default function DeleteCollection({
<p className="text-red-500 font-bold text-center">Warning!</p> <p className="text-red-500 font-bold text-center">Warning!</p>
<div className="max-h-[20rem] overflow-y-auto"> <div className="max-h-[20rem] overflow-y-auto">
<div className="text-gray-500 dark:text-sky-500"> <div className="text-gray-500 dark:text-white">
<p> <p>
Please note that deleting the collection will permanently remove Please note that deleting the collection will permanently remove
all its contents, including the following: all its contents, including the following:
@ -81,9 +81,9 @@ export default function DeleteCollection({
</div> </div>
<div className="flex flex-col gap-3"> <div className="flex flex-col gap-3">
<p className="text-sky-900 dark:text-sky-300 select-none text-center"> <p className="text-black dark:text-white select-none text-center">
To confirm, type &quot; To confirm, type &quot;
<span className="font-bold text-sky-700">{collection.name}</span> <span className="font-bold text-black">{collection.name}</span>
&quot; in the box below: &quot; in the box below:
</p> </p>
@ -98,7 +98,7 @@ export default function DeleteCollection({
</div> </div>
</> </>
) : ( ) : (
<p className="text-gray-500 dark:text-sky-500"> <p className="text-gray-500 dark:text-white">
Click the button below to leave the current collection: Click the button below to leave the current collection:
</p> </p>
)} )}

View File

@ -117,7 +117,7 @@ export default function TeamManagement({
<div className="flex flex-col gap-3 sm:w-[35rem] w-80"> <div className="flex flex-col gap-3 sm:w-[35rem] w-80">
{permissions === true && ( {permissions === true && (
<> <>
<p className="text-sm text-sky-700 dark:text-sky-300">Make Public</p> <p className="text-sm text-black dark:text-white">Make Public</p>
<Checkbox <Checkbox
label="Make this a public collection." label="Make this a public collection."
@ -127,7 +127,7 @@ export default function TeamManagement({
} }
/> />
<p className="text-gray-500 dark:text-sky-500 text-sm"> <p className="text-gray-500 dark:text-white text-sm">
This will let <b>Anyone</b> to view this collection. This will let <b>Anyone</b> to view this collection.
</p> </p>
</> </>
@ -135,7 +135,7 @@ export default function TeamManagement({
{collection.isPublic ? ( {collection.isPublic ? (
<div> <div>
<p className="text-sm text-sky-700 dark:text-sky-300 mb-2"> <p className="text-sm text-black dark:text-white mb-2">
Public Link (Click to copy) Public Link (Click to copy)
</p> </p>
<div <div
@ -159,7 +159,7 @@ export default function TeamManagement({
{permissions === true && ( {permissions === true && (
<> <>
<p className="text-sm text-sky-700 dark:text-sky-300"> <p className="text-sm text-black dark:text-white">
Member Management Member Management
</p> </p>
@ -205,7 +205,7 @@ export default function TeamManagement({
{collection?.members[0]?.user && ( {collection?.members[0]?.user && (
<> <>
<p className="text-center text-gray-500 dark:text-sky-500 text-xs sm:text-sm"> <p className="text-center text-gray-500 dark:text-white text-xs sm:text-sm">
(All Members have <b>Read</b> access to this collection.) (All Members have <b>Read</b> access to this collection.)
</p> </p>
<div className="flex flex-col gap-3 rounded-md"> <div className="flex flex-col gap-3 rounded-md">
@ -220,7 +220,7 @@ export default function TeamManagement({
{permissions === true && ( {permissions === true && (
<FontAwesomeIcon <FontAwesomeIcon
icon={faClose} icon={faClose}
className="absolute right-2 top-2 text-gray-500 dark:text-sky-500 h-4 hover:text-red-500 duration-100 cursor-pointer" className="absolute right-2 top-2 text-gray-500 dark:text-white h-4 hover:text-red-500 duration-100 cursor-pointer"
title="Remove Member" title="Remove Member"
onClick={() => { onClick={() => {
const updatedMembers = collection.members.filter( const updatedMembers = collection.members.filter(
@ -241,23 +241,23 @@ export default function TeamManagement({
className="border-[3px]" className="border-[3px]"
/> />
<div> <div>
<p className="text-sm font-bold text-sky-700 dark:text-sky-300"> <p className="text-sm font-bold text-black dark:text-white">
{e.user.name} {e.user.name}
</p> </p>
<p className="text-sky-900">@{e.user.username}</p> <p className="text-black">@{e.user.username}</p>
</div> </div>
</div> </div>
<div className="flex sm:block items-center gap-5 min-w-[10rem]"> <div className="flex sm:block items-center gap-5 min-w-[10rem]">
<div> <div>
<p <p
className={`font-bold text-sm text-sky-700 dark:text-sky-300 ${ className={`font-bold text-sm text-black dark:text-white ${
permissions === true ? "" : "mb-2" permissions === true ? "" : "mb-2"
}`} }`}
> >
Permissions Permissions
</p> </p>
{permissions === true && ( {permissions === true && (
<p className="text-xs text-gray-500 dark:text-sky-500 mb-2"> <p className="text-xs text-gray-500 dark:text-white mb-2">
(Click to toggle.) (Click to toggle.)
</p> </p>
)} )}
@ -267,7 +267,7 @@ export default function TeamManagement({
!e.canCreate && !e.canCreate &&
!e.canUpdate && !e.canUpdate &&
!e.canDelete ? ( !e.canDelete ? (
<p className="text-sm text-gray-500 dark:text-sky-500"> <p className="text-sm text-gray-500 dark:text-white">
Has no permissions. Has no permissions.
</p> </p>
) : ( ) : (
@ -307,7 +307,7 @@ export default function TeamManagement({
}} }}
/> />
<span <span
className={`text-sky-900 dark:text-sky-300 peer-checked:bg-sky-700 text-sm ${ className={`text-black dark:text-white peer-checked:bg-sky-700 text-sm ${
permissions === true permissions === true
? "hover:bg-slate-200 duration-75" ? "hover:bg-slate-200 duration-75"
: "" : ""
@ -352,7 +352,7 @@ export default function TeamManagement({
}} }}
/> />
<span <span
className={`text-sky-900 dark:text-sky-300 peer-checked:bg-sky-700 text-sm ${ className={`text-black dark:text-white peer-checked:bg-sky-700 text-sm ${
permissions === true permissions === true
? "hover:bg-slate-200 duration-75" ? "hover:bg-slate-200 duration-75"
: "" : ""
@ -397,7 +397,7 @@ export default function TeamManagement({
}} }}
/> />
<span <span
className={`text-sky-900 dark:text-sky-300 peer-checked:bg-sky-700 text-sm ${ className={`text-black dark:text-white peer-checked:bg-sky-700 text-sm ${
permissions === true permissions === true
? "hover:bg-slate-200 duration-75" ? "hover:bg-slate-200 duration-75"
: "" : ""
@ -427,7 +427,7 @@ export default function TeamManagement({
/> />
<div> <div>
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
<p className="text-sm font-bold text-sky-700 dark:text-sky-400"> <p className="text-sm font-bold text-black dark:text-white">
{collectionOwner.name} {collectionOwner.name}
</p> </p>
<FontAwesomeIcon <FontAwesomeIcon
@ -435,13 +435,13 @@ export default function TeamManagement({
className="w-3 h-3 text-yellow-500" className="w-3 h-3 text-yellow-500"
/> />
</div> </div>
<p className="text-sky-900 dark:text-sky-300"> <p className="text-black dark:text-white">
@{collectionOwner.username} @{collectionOwner.username}
</p> </p>
</div> </div>
</div> </div>
<div className="flex flex-col justify-center min-w-[10rem] text-sky-700 dark:text-sky-400"> <div className="flex flex-col justify-center min-w-[10rem] text-black dark:text-white">
<p className={`font-bold text-sm`}>Permissions</p> <p className={`font-bold text-sm`}>Permissions</p>
<p>Full Access (Owner)</p> <p>Full Access (Owner)</p>
</div> </div>

View File

@ -46,17 +46,19 @@ export default function CollectionModal({
<div className={className}> <div className={className}>
<Tab.Group defaultIndex={defaultIndex}> <Tab.Group defaultIndex={defaultIndex}>
{method === "CREATE" && ( {method === "CREATE" && (
<p className="text-xl text-sky-700 dark:text-sky-400 text-center">New Collection</p> <p className="text-xl text-black dark:text-white text-center">
New Collection
</p>
)} )}
<Tab.List className="flex justify-center flex-col max-w-[15rem] sm:max-w-[30rem] mx-auto sm:flex-row gap-2 sm:gap-3 mb-5 text-sky-700 dark:text-sky-400"> <Tab.List className="flex justify-center flex-col max-w-[15rem] sm:max-w-[30rem] mx-auto sm:flex-row gap-2 sm:gap-3 mb-5 text-black dark:text-white">
{method === "UPDATE" && ( {method === "UPDATE" && (
<> <>
{isOwner && ( {isOwner && (
<Tab <Tab
className={({ selected }) => className={({ selected }) =>
selected selected
? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-sky-900 duration-100 rounded-md outline-none" ? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-white duration-100 rounded-md outline-none"
: "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-300 hover:dark:text-sky-900 rounded-md duration-100 outline-none" : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-300 hover:dark:text-white rounded-md duration-100 outline-none"
} }
> >
Collection Info Collection Info
@ -65,8 +67,8 @@ export default function CollectionModal({
<Tab <Tab
className={({ selected }) => className={({ selected }) =>
selected selected
? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-sky-900 duration-100 rounded-md outline-none" ? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-white duration-100 rounded-md outline-none"
: "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-300 hover:dark:text-sky-900 rounded-md duration-100 outline-none" : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-300 hover:dark:text-white rounded-md duration-100 outline-none"
} }
> >
{isOwner ? "Share & Collaborate" : "View Team"} {isOwner ? "Share & Collaborate" : "View Team"}
@ -74,8 +76,8 @@ export default function CollectionModal({
<Tab <Tab
className={({ selected }) => className={({ selected }) =>
selected selected
? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-sky-900 duration-100 rounded-md outline-none" ? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-white duration-100 rounded-md outline-none"
: "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-300 hover:dark:text-sky-900 rounded-md duration-100 outline-none" : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-300 hover:dark:text-white rounded-md duration-100 outline-none"
} }
> >
{isOwner ? "Delete Collection" : "Leave Collection"} {isOwner ? "Delete Collection" : "Leave Collection"}

View File

@ -126,7 +126,7 @@ export default function AddOrEditLink({
{method === "CREATE" ? ( {method === "CREATE" ? (
<div> <div>
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2 font-bold"> <p className="text-sm text-black dark:text-white mb-2 font-bold">
Address (URL) Address (URL)
<RequiredBadge /> <RequiredBadge />
</p> </p>
@ -142,9 +142,7 @@ export default function AddOrEditLink({
<hr className="dark:border-sky-800" /> <hr className="dark:border-sky-800" />
<div className="grid sm:grid-cols-2 gap-3"> <div className="grid sm:grid-cols-2 gap-3">
<div> <div>
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2"> <p className="text-sm text-black dark:text-white mb-2">Collection</p>
Collection
</p>
<CollectionSelection <CollectionSelection
onChange={setCollection} onChange={setCollection}
// defaultValue={{ // defaultValue={{
@ -163,7 +161,7 @@ export default function AddOrEditLink({
</div> </div>
<div> <div>
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2">Tags</p> <p className="text-sm text-black dark:text-white mb-2">Tags</p>
<TagSelection <TagSelection
onChange={setTags} onChange={setTags}
defaultValue={link.tags.map((e) => { defaultValue={link.tags.map((e) => {
@ -173,7 +171,7 @@ export default function AddOrEditLink({
</div> </div>
<div className="sm:col-span-2"> <div className="sm:col-span-2">
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2">Name</p> <p className="text-sm text-black dark:text-white mb-2">Name</p>
<input <input
value={link.name} value={link.name}
onChange={(e) => setLink({ ...link, name: e.target.value })} onChange={(e) => setLink({ ...link, name: e.target.value })}
@ -184,9 +182,7 @@ export default function AddOrEditLink({
</div> </div>
<div className="sm:col-span-2"> <div className="sm:col-span-2">
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2"> <p className="text-sm text-black dark:text-white mb-2">Description</p>
Description
</p>
<textarea <textarea
value={link.description} value={link.description}
onChange={(e) => setLink({ ...link, description: e.target.value })} onChange={(e) => setLink({ ...link, description: e.target.value })}

View File

@ -151,14 +151,14 @@ export default function LinkDetails({ link }: Props) {
/> />
)} )}
<div className="flex flex-col min-h-[3rem] justify-end drop-shadow"> <div className="flex flex-col min-h-[3rem] justify-end drop-shadow">
<p className="text-2xl text-sky-700 dark:text-sky-300 capitalize break-words hyphens-auto"> <p className="text-2xl text-black dark:text-white capitalize break-words hyphens-auto">
{link.name} {link.name}
</p> </p>
<Link <Link
href={link.url} href={link.url}
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
className="text-sm text-gray-500 dark:text-sky-400 break-all hover:underline cursor-pointer w-fit" className="text-sm text-gray-500 dark:text-white break-all hover:underline cursor-pointer w-fit"
> >
{url ? url.host : link.url} {url ? url.host : link.url}
</Link> </Link>
@ -176,7 +176,7 @@ export default function LinkDetails({ link }: Props) {
/> />
<p <p
title={collection?.name} title={collection?.name}
className="text-sky-900 dark:text-sky-500 text-lg truncate max-w-[12rem]" className="text-black dark:text-white text-lg truncate max-w-[12rem]"
> >
{collection?.name} {collection?.name}
</p> </p>
@ -185,7 +185,7 @@ export default function LinkDetails({ link }: Props) {
<Link key={i} href={`/tags/${e.id}`} className="z-10"> <Link key={i} href={`/tags/${e.id}`} className="z-10">
<p <p
title={e.name} title={e.name}
className="px-2 py-1 bg-sky-200 text-sky-700 text-xs rounded-3xl cursor-pointer hover:opacity-60 duration-100 truncate max-w-[19rem]" className="px-2 py-1 bg-sky-200 text-black text-xs rounded-3xl cursor-pointer hover:opacity-60 duration-100 truncate max-w-[19rem]"
> >
{e.name} {e.name}
</p> </p>
@ -194,19 +194,19 @@ export default function LinkDetails({ link }: Props) {
</div> </div>
{link.description && ( {link.description && (
<> <>
<div className="text-gray-500 dark:text-sky-400 max-h-[20rem] my-3 rounded-md overflow-y-auto hyphens-auto"> <div className="text-gray-500 dark:text-white max-h-[20rem] my-3 rounded-md overflow-y-auto hyphens-auto">
{link.description} {link.description}
</div> </div>
</> </>
)} )}
<div className="flex justify-between items-center"> <div className="flex justify-between items-center">
<div className="flex items-center gap-1 text-gray-500 dark:text-sky-400"> <div className="flex items-center gap-1 text-gray-500 dark:text-white">
<FontAwesomeIcon icon={faBoxArchive} className="w-4 h-4" /> <FontAwesomeIcon icon={faBoxArchive} className="w-4 h-4" />
<p>Archived Formats:</p> <p>Archived Formats:</p>
</div> </div>
<div <div
className="flex items-center gap-1 text-gray-500 dark:text-sky-400" className="flex items-center gap-1 text-gray-500 dark:text-white"
title={"Created at: " + formattedDate} title={"Created at: " + formattedDate}
> >
<FontAwesomeIcon icon={faCalendarDays} className="w-4 h-4" /> <FontAwesomeIcon icon={faCalendarDays} className="w-4 h-4" />
@ -220,10 +220,10 @@ export default function LinkDetails({ link }: Props) {
<FontAwesomeIcon icon={faFileImage} className="w-6 h-6" /> <FontAwesomeIcon icon={faFileImage} className="w-6 h-6" />
</div> </div>
<p className="text-gray-500 dark:text-sky-400">Screenshot</p> <p className="text-gray-500 dark:text-white">Screenshot</p>
</div> </div>
<div className="flex text-sky-400 gap-1"> <div className="flex text-black gap-1">
<Link <Link
href={`/api/archives/${link.collectionId}/${link.id}.png`} href={`/api/archives/${link.collectionId}/${link.id}.png`}
target="_blank" target="_blank"
@ -254,10 +254,10 @@ export default function LinkDetails({ link }: Props) {
<FontAwesomeIcon icon={faFilePdf} className="w-6 h-6" /> <FontAwesomeIcon icon={faFilePdf} className="w-6 h-6" />
</div> </div>
<p className="text-gray-500 dark:text-sky-400">PDF</p> <p className="text-gray-500 dark:text-white">PDF</p>
</div> </div>
<div className="flex text-sky-500 gap-1"> <div className="flex text-black gap-1">
<Link <Link
href={`/api/archives/${link.collectionId}/${link.id}.pdf`} href={`/api/archives/${link.collectionId}/${link.id}.pdf`}
target="_blank" target="_blank"

View File

@ -33,10 +33,12 @@ export default function LinkModal({
<div className={className}> <div className={className}>
<Tab.Group defaultIndex={defaultIndex}> <Tab.Group defaultIndex={defaultIndex}>
{method === "CREATE" && ( {method === "CREATE" && (
<p className="text-xl text-sky-700 dark:text-sky-300 text-center">New Link</p> <p className="text-xl text-black dark:text-white text-center">
New Link
</p>
)} )}
<Tab.List <Tab.List
className={`flex justify-center flex-col max-w-[15rem] sm:max-w-[30rem] mx-auto sm:flex-row gap-2 sm:gap-3 mb-5 text-sky-700 dark:text-sky-300 ${ className={`flex justify-center flex-col max-w-[15rem] sm:max-w-[30rem] mx-auto sm:flex-row gap-2 sm:gap-3 mb-5 text-black dark:text-white ${
isOwnerOrMod ? "" : "pb-8" isOwnerOrMod ? "" : "pb-8"
}`} }`}
> >

View File

@ -81,7 +81,7 @@ export default function ChangePassword({
return ( return (
<div className="mx-auto sm:w-[35rem] w-80"> <div className="mx-auto sm:w-[35rem] w-80">
<div className="max-w-[25rem] w-full mx-auto flex flex-col gap-3 justify-between"> <div className="max-w-[25rem] w-full mx-auto flex flex-col gap-3 justify-between">
<p className="text-sm text-sky-700 dark:text-sky-400">New Password</p> <p className="text-sm text-black dark:text-white">New Password</p>
<input <input
value={newPassword} value={newPassword}
@ -90,7 +90,7 @@ export default function ChangePassword({
placeholder="••••••••••••••" placeholder="••••••••••••••"
className="w-full rounded-md p-3 mx-auto border-sky-100 dark:border-sky-800 dark:bg-sky-950 border-solid border outline-none focus:border-sky-700 duration-100" className="w-full rounded-md p-3 mx-auto border-sky-100 dark:border-sky-800 dark:bg-sky-950 border-solid border outline-none focus:border-sky-700 duration-100"
/> />
<p className="text-sm text-sky-700 dark:text-sky-400"> <p className="text-sm text-black dark:text-white">
Confirm New Password Confirm New Password
</p> </p>

View File

@ -119,7 +119,7 @@ export default function PrivacySettings({
return ( return (
<div className="flex flex-col gap-3 justify-between sm:w-[35rem] w-80"> <div className="flex flex-col gap-3 justify-between sm:w-[35rem] w-80">
<div> <div>
<p className="text-sm text-sky-700 mb-2">Profile Visibility</p> <p className="text-sm text-black mb-2">Profile Visibility</p>
<Checkbox <Checkbox
label="Make profile private" label="Make profile private"
@ -134,7 +134,7 @@ export default function PrivacySettings({
{user.isPrivate && ( {user.isPrivate && (
<div> <div>
<p className="text-sm text-sky-700 my-2">Whitelisted Users</p> <p className="text-sm text-black my-2">Whitelisted Users</p>
<p className="text-gray-500 text-sm mb-3"> <p className="text-gray-500 text-sm mb-3">
Please provide the Username of the users you wish to grant Please provide the Username of the users you wish to grant
visibility to your profile. Separated by comma. visibility to your profile. Separated by comma.
@ -152,7 +152,7 @@ export default function PrivacySettings({
</div> </div>
<div className="mt-5"> <div className="mt-5">
<p className="text-sm text-sky-700 mb-2">Import/Export Data</p> <p className="text-sm text-black mb-2">Import/Export Data</p>
<div className="flex gap-2"> <div className="flex gap-2">
<div <div
@ -162,7 +162,7 @@ export default function PrivacySettings({
> >
<div <div
id="import-dropdown" id="import-dropdown"
className="border border-slate-200 rounded-md bg-white px-2 text-center select-none cursor-pointer text-sky-900 duration-100 hover:border-sky-700" className="border border-slate-200 rounded-md bg-white px-2 text-center select-none cursor-pointer text-black duration-100 hover:border-sky-700"
> >
Import From Import From
</div> </div>
@ -196,7 +196,7 @@ export default function PrivacySettings({
</div> </div>
<Link className="w-fit" href="/api/data"> <Link className="w-fit" href="/api/data">
<div className="border border-slate-200 rounded-md bg-white px-2 text-center select-none cursor-pointer text-sky-900 duration-100 hover:border-sky-700"> <div className="border border-slate-200 rounded-md bg-white px-2 text-center select-none cursor-pointer text-black duration-100 hover:border-sky-700">
Export Data Export Data
</div> </div>
</Link> </Link>

View File

@ -102,7 +102,7 @@ export default function ProfileSettings({
<div className="flex flex-col gap-3 justify-between sm:w-[35rem] w-80"> <div className="flex flex-col gap-3 justify-between sm:w-[35rem] w-80">
<div className="grid sm:grid-cols-2 gap-3 auto-rows-auto"> <div className="grid sm:grid-cols-2 gap-3 auto-rows-auto">
<div className="sm:row-span-2 sm:justify-self-center mx-auto mb-3"> <div className="sm:row-span-2 sm:justify-self-center mx-auto mb-3">
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2 text-center"> <p className="text-sm text-black dark:text-white mb-2 text-center">
Profile Photo Profile Photo
</p> </p>
<div className="w-28 h-28 flex items-center justify-center rounded-full relative"> <div className="w-28 h-28 flex items-center justify-center rounded-full relative">
@ -129,7 +129,7 @@ export default function ProfileSettings({
<label <label
htmlFor="upload-photo" htmlFor="upload-photo"
title="PNG or JPG (Max: 3MB)" title="PNG or JPG (Max: 3MB)"
className="border border-slate-200 rounded-md bg-white px-2 text-center select-none cursor-pointer text-sky-900 duration-100 hover:border-sky-700" className="border border-slate-200 rounded-md bg-white px-2 text-center select-none cursor-pointer text-black duration-100 hover:border-sky-700"
> >
Browse... Browse...
<input <input
@ -147,7 +147,7 @@ export default function ProfileSettings({
<div className="flex flex-col gap-3"> <div className="flex flex-col gap-3">
<div> <div>
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2"> <p className="text-sm text-black dark:text-white mb-2">
Display Name Display Name
</p> </p>
<input <input
@ -159,9 +159,7 @@ export default function ProfileSettings({
</div> </div>
<div> <div>
<p className="text-sm text-sky-700 dark:text-sky-400 mb-2"> <p className="text-sm text-black dark:text-white mb-2">Username</p>
Username
</p>
<input <input
type="text" type="text"
value={user.username || ""} value={user.username || ""}
@ -172,7 +170,7 @@ export default function ProfileSettings({
{emailEnabled ? ( {emailEnabled ? (
<div> <div>
<p className="text-sm text-sky-700 mb-2">Email</p> <p className="text-sm text-black mb-2">Email</p>
<input <input
type="text" type="text"
value={user.email || ""} value={user.email || ""}
@ -192,10 +190,10 @@ export default function ProfileSettings({
{/* <hr /> TODO: Export functionality {/* <hr /> TODO: Export functionality
<p className="text-sky-700">Data Settings</p> <p className="text-black">Data Settings</p>
<div className="w-fit"> <div className="w-fit">
<div className="border border-sky-100 rounded-md bg-white px-2 py-1 text-center select-none cursor-pointer text-sky-900 duration-100 hover:border-sky-700"> <div className="border border-sky-100 rounded-md bg-white px-2 py-1 text-center select-none cursor-pointer text-black duration-100 hover:border-sky-700">
Export Data Export Data
</div> </div>
</div> */} </div> */}

View File

@ -27,11 +27,11 @@ export default function UserModal({
return ( return (
<div className={className}> <div className={className}>
<Tab.Group defaultIndex={defaultIndex}> <Tab.Group defaultIndex={defaultIndex}>
<Tab.List className="flex justify-center flex-col max-w-[15rem] sm:max-w-[30rem] mx-auto sm:flex-row gap-2 sm:gap-3 mb-5 text-sky-700 dark:text-sky-300"> <Tab.List className="flex justify-center flex-col max-w-[15rem] sm:max-w-[30rem] mx-auto sm:flex-row gap-2 sm:gap-3 mb-5 text-black dark:text-white">
<Tab <Tab
className={({ selected }) => className={({ selected }) =>
selected selected
? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-sky-100 duration-100 rounded-md outline-none" ? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-white duration-100 rounded-md outline-none"
: "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-700 rounded-md duration-100 outline-none" : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-700 rounded-md duration-100 outline-none"
} }
> >
@ -41,7 +41,7 @@ export default function UserModal({
<Tab <Tab
className={({ selected }) => className={({ selected }) =>
selected selected
? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-sky-100 duration-100 rounded-md outline-none" ? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-white duration-100 rounded-md outline-none"
: "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-600 rounded-md duration-100 outline-none" : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-600 rounded-md duration-100 outline-none"
} }
> >
@ -51,7 +51,7 @@ export default function UserModal({
<Tab <Tab
className={({ selected }) => className={({ selected }) =>
selected selected
? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-sky-100 duration-100 rounded-md outline-none" ? "px-2 py-1 bg-sky-200 dark:bg-sky-500 dark:text-white duration-100 rounded-md outline-none"
: "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-600 rounded-md duration-100 outline-none" : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-sky-600 rounded-md duration-100 outline-none"
} }
> >

View File

@ -37,7 +37,7 @@ export default function Navbar() {
<div className="flex justify-between gap-2 items-center px-5 py-2 border-solid border-b-sky-100 dark:border-b-sky-800 border-b h-16"> <div className="flex justify-between gap-2 items-center px-5 py-2 border-solid border-b-sky-100 dark:border-b-sky-800 border-b h-16">
<div <div
onClick={toggleSidebar} onClick={toggleSidebar}
className="inline-flex lg:hidden gap-1 items-center select-none cursor-pointer p-[0.687rem] text-sky-700 rounded-md duration-100 hover:bg-slate-200" className="inline-flex lg:hidden gap-1 items-center select-none cursor-pointer p-[0.687rem] text-black rounded-md duration-100 hover:bg-slate-200"
> >
<FontAwesomeIcon icon={faBars} className="w-5 h-5" /> <FontAwesomeIcon icon={faBars} className="w-5 h-5" />
</div> </div>
@ -51,7 +51,7 @@ export default function Navbar() {
method: "CREATE", method: "CREATE",
}); });
}} }}
className="inline-flex gap-1 relative sm:w-[7.2rem] items-center font-semibold select-none cursor-pointer p-[0.687rem] sm:p-2 sm:px-3 rounded-md sm:rounded-full hover:bg-sky-100 text-sky-700 sm:text-white sm:bg-sky-700 sm:dark:bg-sky-400 sm:hover:bg-sky-600 duration-100 group" className="inline-flex gap-1 relative sm:w-[7.2rem] items-center font-semibold select-none cursor-pointer p-[0.687rem] sm:p-2 sm:px-3 rounded-md sm:rounded-full hover:bg-sky-100 text-black sm:text-white sm:bg-sky-700 sm:dark:bg-sky-400 sm:hover:bg-sky-600 duration-100 group"
> >
<FontAwesomeIcon <FontAwesomeIcon
icon={faPlus} icon={faPlus}

View File

@ -8,11 +8,11 @@ export default function NoLinksFound() {
return ( return (
<div className="border border-solid border-sky-100 dark:border-sky-800 w-full p-10 rounded-2xl"> <div className="border border-solid border-sky-100 dark:border-sky-800 w-full p-10 rounded-2xl">
<p className="text-center text-3xl text-sky-700 dark:text-white"> <p className="text-center text-3xl text-black dark:text-white">
You haven&apos;t created any Links Here You haven&apos;t created any Links Here
</p> </p>
<br /> <br />
<div className="text-center text-sky-900 dark:text-white text-sm flex items-baseline justify-center gap-1 w-full"> <div className="text-center text-black dark:text-white text-sm flex items-baseline justify-center gap-1 w-full">
<p>Start by creating a</p>{" "} <p>Start by creating a</p>{" "}
<div <div
onClick={() => { onClick={() => {

View File

@ -58,8 +58,8 @@ export default function LinkCard({ link, count }: Props) {
<div className="flex justify-between items-center gap-5 w-full h-full z-0"> <div className="flex justify-between items-center gap-5 w-full h-full z-0">
<div className="flex flex-col justify-between"> <div className="flex flex-col justify-between">
<div className="flex items-baseline gap-1"> <div className="flex items-baseline gap-1">
<p className="text-sm text-sky-500 font-bold">{count + 1}.</p> <p className="text-sm text-black font-bold">{count + 1}.</p>
<p className="text-lg text-sky-700 font-bold">{link.name}</p> <p className="text-lg text-black font-bold">{link.name}</p>
</div> </div>
<p className="text-gray-500 text-sm font-medium"> <p className="text-gray-500 text-sm font-medium">
@ -70,7 +70,7 @@ export default function LinkCard({ link, count }: Props) {
{link.tags.map((e, i) => ( {link.tags.map((e, i) => (
<p <p
key={i} key={i}
className="px-2 py-1 bg-sky-200 text-sky-700 text-xs rounded-3xl cursor-pointer truncate max-w-[10rem]" className="px-2 py-1 bg-sky-200 text-black text-xs rounded-3xl cursor-pointer truncate max-w-[10rem]"
> >
{e.name} {e.name}
</p> </p>
@ -79,7 +79,7 @@ export default function LinkCard({ link, count }: Props) {
</div> </div>
<div className="flex gap-2 items-center flex-wrap mt-2"> <div className="flex gap-2 items-center flex-wrap mt-2">
<p className="text-gray-500">{formattedDate}</p> <p className="text-gray-500">{formattedDate}</p>
<div className="text-sky-500 font-bold flex items-center gap-1"> <div className="text-black font-bold flex items-center gap-1">
<p>{url ? url.host : link.url}</p> <p>{url ? url.host : link.url}</p>
</div> </div>
</div> </div>

View File

@ -20,13 +20,15 @@ export default function RadioButton({ label, state, onClick }: Props) {
/> />
<FontAwesomeIcon <FontAwesomeIcon
icon={faCircleCheck} icon={faCircleCheck}
className="w-5 h-5 text-sky-700 dark:text-sky-300 peer-checked:block hidden" className="w-5 h-5 text-black dark:text-white peer-checked:block hidden"
/> />
<FontAwesomeIcon <FontAwesomeIcon
icon={faCircle} icon={faCircle}
className="w-5 h-5 text-sky-700 dark:text-sky-300 peer-checked:hidden block" className="w-5 h-5 text-black dark:text-white peer-checked:hidden block"
/> />
<span className="text-sky-900 dark:text-sky-300 rounded select-none">{label}</span> <span className="text-black dark:text-white rounded select-none">
{label}
</span>
</label> </label>
); );
} }

View File

@ -1,6 +1,9 @@
export default function RequiredBadge() { export default function RequiredBadge() {
return ( return (
<span title="Required Field" className="text-sky-700 dark:text-sky-400 cursor-help"> <span
title="Required Field"
className="text-black dark:text-white cursor-help"
>
{" "} {" "}
* *
</span> </span>

View File

@ -24,7 +24,7 @@ export default function Search() {
> >
<label <label
htmlFor="search-box" htmlFor="search-box"
className="inline-flex w-fit absolute left-2 pointer-events-none rounded-md p-1 text-sky-500 dark:text-sky-300 group-hover:text-sky-700" className="inline-flex w-fit absolute left-2 pointer-events-none rounded-md p-1 text-sky-500 dark:text-sky-300"
> >
<FontAwesomeIcon icon={faMagnifyingGlass} className="w-5 h-5" /> <FontAwesomeIcon icon={faMagnifyingGlass} className="w-5 h-5" />
</label> </label>
@ -44,7 +44,7 @@ export default function Search() {
router.push("/search/" + encodeURIComponent(searchQuery)) router.push("/search/" + encodeURIComponent(searchQuery))
} }
autoFocus={searchBox} autoFocus={searchBox}
className="border border-sky-100 dark:border-sky-800 rounded-md pl-10 py-2 pr-2 w-44 sm:w-60 focus:border-sky-700 md:focus:w-80 hover:border-sky-700 duration-100 outline-none dark:bg-sky-950" className="border border-sky-100 dark:border-sky-800 rounded-md pl-10 py-2 pr-2 w-44 sm:w-60 focus:border-sky-300 dark:focus:border-sky-600 dark:hover:border-sky-600 md:focus:w-80 hover:border-sky-300 duration-100 outline-none dark:bg-sky-950"
/> />
</div> </div>
); );

View File

@ -64,7 +64,7 @@ export default function Sidebar({ className }: { className?: string }) {
> >
<FontAwesomeIcon <FontAwesomeIcon
icon={faChartSimple} icon={faChartSimple}
className={`w-8 h-8 drop-shadow text-sky-500 dark:text-sky-100`} className={`w-8 h-8 drop-shadow text-sky-500 dark:text-sky-300`}
/> />
<p className="text-black dark:text-white text-xs xl:text-sm font-semibold"> <p className="text-black dark:text-white text-xs xl:text-sm font-semibold">
@ -82,10 +82,10 @@ export default function Sidebar({ className }: { className?: string }) {
> >
<FontAwesomeIcon <FontAwesomeIcon
icon={faLink} icon={faLink}
className={`w-8 h-8 drop-shadow text-sky-500 dark:text-sky-100`} className={`w-8 h-8 drop-shadow text-sky-500 dark:text-sky-300`}
/> />
<p className="text-sky-700 dark:text-sky-200 text-xs xl:text-sm font-semibold"> <p className="text-black dark:text-white text-xs xl:text-sm font-semibold">
Links Links
</p> </p>
</Link> </Link>
@ -100,10 +100,10 @@ export default function Sidebar({ className }: { className?: string }) {
> >
<FontAwesomeIcon <FontAwesomeIcon
icon={faFolder} icon={faFolder}
className={`w-8 h-8 drop-shadow text-sky-500 dark:text-sky-100`} className={`w-8 h-8 drop-shadow text-sky-500 dark:text-sky-300`}
/> />
<p className="text-sky-700 dark:text-sky-200 text-xs xl:text-sm font-semibold"> <p className="text-black dark:text-white text-xs xl:text-sm font-semibold">
Collections Collections
</p> </p>
</Link> </Link>
@ -114,7 +114,7 @@ export default function Sidebar({ className }: { className?: string }) {
onClick={() => { onClick={() => {
setCollectionDisclosure(!collectionDisclosure); setCollectionDisclosure(!collectionDisclosure);
}} }}
className="flex items-center justify-between text-sm w-full text-left mb-2 pl-2 font-bold text-gray-500 dark:text-sky-500 mt-5" className="flex items-center justify-between text-sm w-full text-left mb-2 pl-2 font-bold text-gray-500 dark:text-white mt-5"
> >
<p>Collections</p> <p>Collections</p>
@ -153,7 +153,7 @@ export default function Sidebar({ className }: { className?: string }) {
style={{ color: e.color }} style={{ color: e.color }}
/> />
<p className="text-sky-700 dark:text-sky-200 truncate w-full pr-7"> <p className="text-black dark:text-white truncate w-full pr-7">
{e.name} {e.name}
</p> </p>
</div> </div>
@ -164,7 +164,7 @@ export default function Sidebar({ className }: { className?: string }) {
<div <div
className={`duration-100 py-1 px-2 flex items-center gap-2 w-full rounded-md h-8 capitalize`} className={`duration-100 py-1 px-2 flex items-center gap-2 w-full rounded-md h-8 capitalize`}
> >
<p className="text-gray-500 dark:text-sky-500 text-xs font-semibold truncate w-full pr-7"> <p className="text-gray-500 dark:text-white text-xs font-semibold truncate w-full pr-7">
You Have No Collections... You Have No Collections...
</p> </p>
</div> </div>
@ -177,7 +177,7 @@ export default function Sidebar({ className }: { className?: string }) {
onClick={() => { onClick={() => {
setTagDisclosure(!tagDisclosure); setTagDisclosure(!tagDisclosure);
}} }}
className="flex items-center justify-between text-sm w-full text-left mb-2 pl-2 font-bold text-gray-500 dark:text-sky-500 mt-5" className="flex items-center justify-between text-sm w-full text-left mb-2 pl-2 font-bold text-gray-500 dark:text-white mt-5"
> >
<p>Tags</p> <p>Tags</p>
<FontAwesomeIcon <FontAwesomeIcon
@ -209,10 +209,10 @@ export default function Sidebar({ className }: { className?: string }) {
> >
<FontAwesomeIcon <FontAwesomeIcon
icon={faHashtag} icon={faHashtag}
className="w-4 h-4 text-sky-500 mt-1" className="w-4 h-4 text-sky-500 dark:text-sky-300 mt-1"
/> />
<p className="text-sky-700 dark:text-sky-300 truncate w-full pr-7"> <p className="text-black dark:text-white truncate w-full pr-7">
{e.name} {e.name}
</p> </p>
</div> </div>
@ -223,7 +223,7 @@ export default function Sidebar({ className }: { className?: string }) {
<div <div
className={`duration-100 py-1 px-2 flex items-center gap-2 w-full rounded-md h-8 capitalize`} className={`duration-100 py-1 px-2 flex items-center gap-2 w-full rounded-md h-8 capitalize`}
> >
<p className="text-gray-500 dark:text-sky-500 text-xs font-semibold truncate w-full pr-7"> <p className="text-gray-500 dark:text-white text-xs font-semibold truncate w-full pr-7">
You Have No Tags... You Have No Tags...
</p> </p>
</div> </div>

View File

@ -23,7 +23,7 @@ export default function SortDropdown({
}} }}
className="absolute top-8 right-0 border border-sky-100 dark:border-sky-800 shadow-md bg-gray-50 dark:bg-sky-900 rounded-md p-2 z-20 w-48" className="absolute top-8 right-0 border border-sky-100 dark:border-sky-800 shadow-md bg-gray-50 dark:bg-sky-900 rounded-md p-2 z-20 w-48"
> >
<p className="mb-2 text-sky-900 dark:text-sky-200 text-center font-semibold"> <p className="mb-2 text-black dark:text-white text-center font-semibold">
Sort by Sort by
</p> </p>
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">

View File

@ -23,7 +23,7 @@ export default function CenteredForm({ text, children }: Props) {
</p> </p>
) : undefined} ) : undefined}
{children} {children}
<p className="text-center text-xs text-gray-500 dark:text-sky-500"> <p className="text-center text-xs text-gray-500 dark:text-white">
© {new Date().getFullYear()} Linkwarden. All rights reserved. © {new Date().getFullYear()} Linkwarden. All rights reserved.
</p> </p>
</div> </div>

View File

@ -45,7 +45,7 @@ export default function Subscribe() {
</p> </p>
<div> <div>
<p className="text-sm text-sky-700 w-fit font-semibold mb-1"> <p className="text-sm text-black w-fit font-semibold mb-1">
Username Username
</p> </p>

View File

@ -60,7 +60,7 @@ export default function Index() {
style={{ color: activeCollection?.color }} style={{ color: activeCollection?.color }}
className="sm:w-8 sm:h-8 w-6 h-6 mt-3 drop-shadow" className="sm:w-8 sm:h-8 w-6 h-6 mt-3 drop-shadow"
/> />
<p className="sm:text-4xl text-3xl capitalize text-sky-700 dark:text-sky-300 font-bold w-full py-1 break-words hyphens-auto"> <p className="sm:text-4xl text-3xl capitalize text-black dark:text-white font-bold w-full py-1 break-words hyphens-auto">
{activeCollection?.name} {activeCollection?.name}
</p> </p>
</div> </div>
@ -116,7 +116,7 @@ export default function Index() {
) : null} ) : null}
</div> </div>
<div className="text-gray-600 dark:text-sky-400 flex justify-between items-end gap-5"> <div className="text-gray-600 dark:text-white flex justify-between items-end gap-5">
<p>{activeCollection?.description}</p> <p>{activeCollection?.description}</p>
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<div className="relative"> <div className="relative">
@ -128,7 +128,7 @@ export default function Index() {
<FontAwesomeIcon <FontAwesomeIcon
icon={faSort} icon={faSort}
id="sort-dropdown" id="sort-dropdown"
className="w-5 h-5 text-gray-500 dark:text-sky-400" className="w-5 h-5 text-gray-500 dark:text-white"
/> />
</div> </div>
@ -150,7 +150,7 @@ export default function Index() {
icon={faEllipsis} icon={faEllipsis}
id="expand-dropdown" id="expand-dropdown"
title="More" title="More"
className="w-5 h-5 text-gray-500 dark:text-sky-400" className="w-5 h-5 text-gray-500 dark:text-white"
/> />
</div> </div>
{expandDropdown ? ( {expandDropdown ? (

View File

@ -39,7 +39,7 @@ export default function Collections() {
icon={faFolder} icon={faFolder}
className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300 drop-shadow" className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300 drop-shadow"
/> />
<p className="sm:text-4xl text-3xl capitalize text-sky-700 dark:text-sky-400 font-bold"> <p className="sm:text-4xl text-3xl capitalize text-black dark:text-white font-bold">
All Collections All Collections
</p> </p>
</div> </div>
@ -52,7 +52,7 @@ export default function Collections() {
<FontAwesomeIcon <FontAwesomeIcon
icon={faEllipsis} icon={faEllipsis}
id="expand-dropdown" id="expand-dropdown"
className="w-5 h-5 text-gray-500 dark:text-sky-500" className="w-5 h-5 text-gray-500 dark:text-white"
/> />
</div> </div>
@ -91,7 +91,7 @@ export default function Collections() {
<FontAwesomeIcon <FontAwesomeIcon
icon={faSort} icon={faSort}
id="sort-dropdown" id="sort-dropdown"
className="w-5 h-5 text-gray-500 dark:text-sky-500" className="w-5 h-5 text-gray-500 dark:text-white"
/> />
</div> </div>
@ -120,7 +120,7 @@ export default function Collections() {
}); });
}} }}
> >
<p className="text-sky-900 dark:text-sky-400 group-hover:opacity-0 duration-100"> <p className="text-black dark:text-white group-hover:opacity-0 duration-100">
New Collection New Collection
</p> </p>
<FontAwesomeIcon <FontAwesomeIcon

View File

@ -5,7 +5,7 @@ import React from "react";
export default function EmailConfirmaion() { export default function EmailConfirmaion() {
return ( return (
<CenteredForm> <CenteredForm>
<div className="p-2 sm:w-[30rem] w-80 rounded-2xl shadow-md m-auto border border-sky-100 bg-slate-50 text-sky-800"> <div className="p-2 sm:w-[30rem] w-80 rounded-2xl shadow-md m-auto border border-sky-100 bg-slate-50 text-black">
<p className="text-center text-xl font-bold mb-2 text-black"> <p className="text-center text-xl font-bold mb-2 text-black">
Please check your Email Please check your Email
</p> </p>

View File

@ -85,7 +85,7 @@ export default function Dashboard() {
icon={faChartSimple} icon={faChartSimple}
className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300 drop-shadow" className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300 drop-shadow"
/> />
<p className="sm:text-4xl text-3xl capitalize text-sky-700 dark:text-sky-400 font-bold"> <p className="sm:text-4xl text-3xl capitalize text-black dark:text-white font-bold">
Dashboard Dashboard
</p> </p>
</div> </div>
@ -95,24 +95,28 @@ export default function Dashboard() {
<div className="flex flex-col md:flex-row md:items-center justify-evenly gap-2 mb-10"> <div className="flex flex-col md:flex-row md:items-center justify-evenly gap-2 mb-10">
<div className="flex items-baseline gap-2"> <div className="flex items-baseline gap-2">
<p className="font-bold text-6xl text-sky-700 dark:text-sky-300">{numberOfLinks}</p> <p className="font-bold text-6xl text-sky-500 dark:text-sky-300">
<p className="text-sky-900 dark:text-sky-500 text-xl"> {numberOfLinks}
</p>
<p className="text-black dark:text-white text-xl">
{numberOfLinks === 1 ? "Link" : "Links"} {numberOfLinks === 1 ? "Link" : "Links"}
</p> </p>
</div> </div>
<div className="flex items-baseline gap-2"> <div className="flex items-baseline gap-2">
<p className="font-bold text-6xl text-sky-700 dark:text-sky-300"> <p className="font-bold text-6xl text-sky-500 dark:text-sky-300">
{collections.length} {collections.length}
</p> </p>
<p className="text-sky-900 dark:text-sky-500 text-xl"> <p className="text-black dark:text-white text-xl">
{collections.length === 1 ? "Collection" : "Collections"} {collections.length === 1 ? "Collection" : "Collections"}
</p> </p>
</div> </div>
<div className="flex items-baseline gap-2"> <div className="flex items-baseline gap-2">
<p className="font-bold text-6xl text-sky-700 dark:text-sky-300">{tags.length}</p> <p className="font-bold text-6xl text-sky-500 dark:text-sky-300">
<p className="text-sky-900 dark:text-sky-500 text-xl"> {tags.length}
</p>
<p className="text-black dark:text-white text-xl">
{tags.length === 1 ? "Tag" : "Tags"} {tags.length === 1 ? "Tag" : "Tags"}
</p> </p>
</div> </div>
@ -131,13 +135,13 @@ export default function Dashboard() {
}} }}
className="flex justify-between gap-2 items-baseline shadow active:shadow-inner duration-100 py-2 px-4 rounded-full" className="flex justify-between gap-2 items-baseline shadow active:shadow-inner duration-100 py-2 px-4 rounded-full"
> >
<p className="text-sky-700 text-xl">Pinned Links</p> <p className="text-black text-xl">Pinned Links</p>
<div className="text-sky-700 flex items-center gap-2"> <div className="text-black flex items-center gap-2">
{linkPinDisclosure ? "Hide" : "Show"} {linkPinDisclosure ? "Hide" : "Show"}
<FontAwesomeIcon <FontAwesomeIcon
icon={faChevronDown} icon={faChevronDown}
className={`w-4 h-4 text-sky-300 ${ className={`w-4 h-4 text-black ${
linkPinDisclosure ? "rotate-reverse" : "rotate" linkPinDisclosure ? "rotate-reverse" : "rotate"
}`} }`}
/> />
@ -164,10 +168,10 @@ export default function Dashboard() {
</Disclosure> </Disclosure>
) : ( ) : (
<div className="border border-solid border-sky-100 dark:border-sky-800 w-full mx-auto md:w-2/3 p-10 rounded-2xl"> <div className="border border-solid border-sky-100 dark:border-sky-800 w-full mx-auto md:w-2/3 p-10 rounded-2xl">
<p className="text-center text-2xl text-sky-700 dark:text-sky-300"> <p className="text-center text-2xl text-black dark:text-white">
No Pinned Links No Pinned Links
</p> </p>
<p className="text-center text-sky-900 dark:text-sky-500 text-sm"> <p className="text-center text-black dark:text-white text-sm">
You can Pin Links by clicking on the three dots on each Link and You can Pin Links by clicking on the three dots on each Link and
clicking &quot;Pin to Dashboard.&quot; clicking &quot;Pin to Dashboard.&quot;
</p> </p>
@ -182,13 +186,13 @@ export default function Dashboard() {
}} }}
className="flex justify-between gap-2 items-baseline shadow active:shadow-inner duration-100 py-2 px-4 rounded-full" className="flex justify-between gap-2 items-baseline shadow active:shadow-inner duration-100 py-2 px-4 rounded-full"
> >
<p className="text-sky-700 text-xl">Pinned Collections</p> <p className="text-black text-xl">Pinned Collections</p>
<div className="text-sky-700 flex items-center gap-2"> <div className="text-black flex items-center gap-2">
{collectionPinDisclosure ? "Hide" : "Show"} {collectionPinDisclosure ? "Hide" : "Show"}
<FontAwesomeIcon <FontAwesomeIcon
icon={faChevronDown} icon={faChevronDown}
className={`w-4 h-4 text-sky-300 ${ className={`w-4 h-4 text-black ${
collectionPinDisclosure ? "rotate-reverse" : "rotate" collectionPinDisclosure ? "rotate-reverse" : "rotate"
}`} }`}
/> />
@ -219,13 +223,13 @@ export default function Dashboard() {
}} }}
className="flex justify-between gap-2 items-baseline shadow active:shadow-inner duration-100 py-2 px-4 rounded-full" className="flex justify-between gap-2 items-baseline shadow active:shadow-inner duration-100 py-2 px-4 rounded-full"
> >
<p className="text-sky-700 text-xl">Pinned Tags</p> <p className="text-black text-xl">Pinned Tags</p>
<div className="text-sky-700 flex items-center gap-2"> <div className="text-black flex items-center gap-2">
{tagPinDisclosure ? "Hide" : "Show"} {tagPinDisclosure ? "Hide" : "Show"}
<FontAwesomeIcon <FontAwesomeIcon
icon={faChevronDown} icon={faChevronDown}
className={`w-4 h-4 text-sky-300 ${ className={`w-4 h-4 text-black ${
tagPinDisclosure ? "rotate-reverse" : "rotate" tagPinDisclosure ? "rotate-reverse" : "rotate"
}`} }`}
/> />
@ -244,7 +248,7 @@ export default function Dashboard() {
<Link <Link
href={`/tags/${e.id}`} href={`/tags/${e.id}`}
key={i} key={i}
className="px-2 py-1 bg-sky-200 rounded-full hover:opacity-60 duration-100 text-sky-700" className="px-2 py-1 bg-sky-200 rounded-full hover:opacity-60 duration-100 text-black"
> >
{e.name} {e.name}
</Link> </Link>

View File

@ -53,7 +53,7 @@ export default function Forgot() {
</p> </p>
</div> </div>
<div> <div>
<p className="text-sm text-sky-700 w-fit font-semibold mb-1">Email</p> <p className="text-sm text-black w-fit font-semibold mb-1">Email</p>
<input <input
type="text" type="text"
@ -71,7 +71,7 @@ export default function Forgot() {
loading={submitLoader} loading={submitLoader}
/> />
<div className="flex items-baseline gap-1 justify-center"> <div className="flex items-baseline gap-1 justify-center">
<Link href={"/login"} className="block text-sky-700 font-bold"> <Link href={"/login"} className="block text-black font-bold">
Go back Go back
</Link> </Link>
</div> </div>

View File

@ -26,7 +26,7 @@ export default function Links() {
icon={faLink} icon={faLink}
className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300 drop-shadow" className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300 drop-shadow"
/> />
<p className="sm:text-4xl text-3xl capitalize text-sky-700 dark:text-sky-300 font-bold"> <p className="sm:text-4xl text-3xl capitalize text-black dark:text-white font-bold">
All Links All Links
</p> </p>
</div> </div>

View File

@ -53,7 +53,7 @@ export default function Login() {
</p> </p>
<div> <div>
<p className="text-sm text-sky-700 dark:text-sky-300 w-fit font-semibold mb-1"> <p className="text-sm text-black dark:text-white w-fit font-semibold mb-1">
Username Username
{emailEnabled ? "/Email" : undefined} {emailEnabled ? "/Email" : undefined}
</p> </p>
@ -68,7 +68,7 @@ export default function Login() {
</div> </div>
<div> <div>
<p className="text-sm text-sky-700 dark:text-sky-300 w-fit font-semibold mb-1"> <p className="text-sm text-black dark:text-white w-fit font-semibold mb-1">
Password Password
</p> </p>
@ -95,8 +95,11 @@ export default function Login() {
loading={submitLoader} loading={submitLoader}
/> />
<div className="flex items-baseline gap-1 justify-center"> <div className="flex items-baseline gap-1 justify-center">
<p className="w-fit text-gray-500 dark:text-sky-300">New here?</p> <p className="w-fit text-gray-500 dark:text-white">New here?</p>
<Link href={"/register"} className="block text-sky-700 dark:text-sky-500 font-bold"> <Link
href={"/register"}
className="block text-black dark:text-white font-bold"
>
Sign Up Sign Up
</Link> </Link>
</div> </div>

View File

@ -45,7 +45,7 @@ export default function PublicCollections() {
<div <div
className={`text-center bg-gradient-to-tr from-sky-100 from-10% via-gray-100 via-20% rounded-3xl shadow-lg p-5`} className={`text-center bg-gradient-to-tr from-sky-100 from-10% via-gray-100 via-20% rounded-3xl shadow-lg p-5`}
> >
<p className="text-5xl text-sky-700 font-bold mb-5 capitalize"> <p className="text-5xl text-black font-bold mb-5 capitalize">
{data.name} {data.name}
</p> </p>
@ -64,7 +64,7 @@ export default function PublicCollections() {
</div> </div>
{/* <p className="text-center font-bold text-gray-500"> {/* <p className="text-center font-bold text-gray-500">
List created with <span className="text-sky-700">Linkwarden.</span> List created with <span className="text-black">Linkwarden.</span>
</p> */} </p> */}
</div> </div>
) : ( ) : (

View File

@ -103,7 +103,7 @@ export default function Register() {
Enter your details Enter your details
</p> </p>
<div> <div>
<p className="text-sm text-sky-700 w-fit font-semibold mb-1"> <p className="text-sm text-black w-fit font-semibold mb-1">
Display Name Display Name
</p> </p>
@ -118,7 +118,7 @@ export default function Register() {
{emailEnabled ? undefined : ( {emailEnabled ? undefined : (
<div> <div>
<p className="text-sm text-sky-700 w-fit font-semibold mb-1"> <p className="text-sm text-black w-fit font-semibold mb-1">
Username Username
</p> </p>
@ -134,9 +134,7 @@ export default function Register() {
{emailEnabled ? ( {emailEnabled ? (
<div> <div>
<p className="text-sm text-sky-700 w-fit font-semibold mb-1"> <p className="text-sm text-black w-fit font-semibold mb-1">Email</p>
Email
</p>
<input <input
type="email" type="email"
@ -149,7 +147,7 @@ export default function Register() {
) : undefined} ) : undefined}
<div className="w-full"> <div className="w-full">
<p className="text-sm text-sky-700 w-fit font-semibold mb-1"> <p className="text-sm text-black w-fit font-semibold mb-1">
Password Password
</p> </p>
@ -163,7 +161,7 @@ export default function Register() {
</div> </div>
<div className="w-full"> <div className="w-full">
<p className="text-sm text-sky-700 w-fit font-semibold mb-1"> <p className="text-sm text-black w-fit font-semibold mb-1">
Confirm Password Confirm Password
</p> </p>
@ -215,7 +213,7 @@ export default function Register() {
/> />
<div className="flex items-baseline gap-1 justify-center"> <div className="flex items-baseline gap-1 justify-center">
<p className="w-fit text-gray-500">Already have an account?</p> <p className="w-fit text-gray-500">Already have an account?</p>
<Link href={"/login"} className="block text-sky-700 font-bold"> <Link href={"/login"} className="block text-black font-bold">
Login Login
</Link> </Link>
</div> </div>

View File

@ -40,9 +40,9 @@ export default function Links() {
<div className="flex gap-2"> <div className="flex gap-2">
<FontAwesomeIcon <FontAwesomeIcon
icon={faSearch} icon={faSearch}
className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 drop-shadow" className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300 drop-shadow"
/> />
<p className="sm:text-4xl text-3xl capitalize text-sky-700 font-bold"> <p className="sm:text-4xl text-3xl capitalize text-black dark:text-white font-bold">
Search Results Search Results
</p> </p>
</div> </div>
@ -99,9 +99,9 @@ export default function Links() {
return <LinkCard key={i} link={e} count={i} />; return <LinkCard key={i} link={e} count={i} />;
}) })
) : ( ) : (
<p className="text-sky-900"> <p className="text-black dark:text-white">
Nothing found.{" "} Nothing found.{" "}
<span className="text-sky-700 font-bold text-xl" title="Shruggie"> <span className="font-bold text-xl" title="Shruggie">
¯\_()_/¯ ¯\_()_/¯
</span> </span>
</p> </p>

View File

@ -38,7 +38,7 @@ export default function Index() {
icon={faHashtag} icon={faHashtag}
className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300" className="sm:w-8 sm:h-8 w-6 h-6 mt-2 text-sky-500 dark:text-sky-300"
/> />
<p className="sm:text-4xl text-3xl capitalize text-sky-700 dark:text-sky-500 font-bold"> <p className="sm:text-4xl text-3xl capitalize text-black dark:text-white font-bold">
{activeTag?.name} {activeTag?.name}
</p> </p>
</div> </div>