Better support for dark mode

This commit is contained in:
Lucàs
2023-06-16 18:33:40 +02:00
parent 151ad7f2f9
commit 8055a2ff90
6 changed files with 24 additions and 12 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ import TodoCard from './components/todo/TodoCard.tsx';
export default function App() { export default function App() {
return ( return (
<div className={"w-screen min-h-screen bg-blue-50"}> <div className={"w-screen min-h-screen bg-base-300"}>
<Navbar/> <Navbar/>
<main className={"w-full min-h-screen flex justify-center items-center"}> <main className={"w-full min-h-screen flex justify-center items-center"}>
+2 -2
View File
@@ -1,8 +1,8 @@
export default function Footer() { export default function Footer() {
return ( return (
<footer className={"Footer footer w-screen fixed bottom-0 p-4"}> <footer className={"Footer footer w-screen absolute bottom-0 p-4"}>
<p className={"inline-block w-full text-center"}> <p className={"inline-block w-full text-center"}>
MIT Licence © 2023 <a className={"link"} href={"https://github.com/LucasVbr/todo-list"} target={"_blank"}>See code on GitHub</a> MIT Licence © 2023 <a className={"link no-underline hover:underline"} href={"https://github.com/LucasVbr/todo-list"} target={"_blank"}>See code on GitHub</a>
</p> </p>
</footer> </footer>
) )
+1 -1
View File
@@ -1,6 +1,6 @@
export default function Navbar() { export default function Navbar() {
return ( return (
<div className={"Navbar navbar fixed top-0"}> <div className={"Navbar navbar absolute top-0"}>
<button className={"btn btn-ghost normal-case text-xl"}>Todo List App</button> <button className={"btn btn-ghost normal-case text-xl"}>Todo List App</button>
</div> </div>
) )
+11 -4
View File
@@ -18,12 +18,19 @@ export default function TodoAddItemForm() {
<div className={'form-control'}> <div className={'form-control'}>
<div className={'input-group'}> <div className={'input-group'}>
<input type={'text'} value={name} placeholder={'Type here your task...'} <input type={'text'} value={name} placeholder={'Type here your task...'}
className={'input input-bordered w-full'} className={'input border-primary w-full'}
onChange={evt => setName(evt.target.value)} onChange={evt => setName(evt.target.value)}
/> />
<button type={'submit'} className={'btn btn-square'}> <button type={'submit'} className={'btn btn-square btn-primary'}>
<img className={'h-6 w-6'} src={'/icons/plus.svg'}
alt="Plus icon"/> {/*Plus icon*/}
<svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6"
fill="none"
viewBox="0 0 24 24" stroke="currentColor" strokeWidth="2">
<path strokeLinecap="round" strokeLinejoin="round"
d="M12 4v16m8-8H4"/>
</svg>
</button> </button>
</div> </div>
</div> </div>
+3 -1
View File
@@ -3,12 +3,14 @@ import TodoAddItemForm from './TodoAddItemForm.tsx';
import TodoCardFooter from './TodoCardFooter.tsx'; import TodoCardFooter from './TodoCardFooter.tsx';
import {useSelector} from 'react-redux'; import {useSelector} from 'react-redux';
import {RootState} from '../../store.ts'; import {RootState} from '../../store.ts';
import clsx from 'clsx';
export default function TodoCard() { export default function TodoCard() {
const todos = useSelector((state: RootState) => state.todo); const todos = useSelector((state: RootState) => state.todo);
return ( return (
<div className={'TodoCard card bg-base-100 shadow-xl p-5 gap-7 transition ease-in-out delay-150'}> <div className={clsx('TodoCard',
'card max-w-6xl p-5 shadow-xl gap-7 bg-base-100')}>
<TodoAddItemForm/> <TodoAddItemForm/>
{todos.length > 0 && ( {todos.length > 0 && (
<> <>
+6 -3
View File
@@ -13,9 +13,12 @@ export default function TodoItem({todo}: Props) {
const handleCheck = () => dispatch(checkTodo(todo.id)); const handleCheck = () => dispatch(checkTodo(todo.id));
return ( return (
<label className={clsx('TodoItem', 'shadow rounded-lg p-4 w-full flex items-center justify-between cursor-pointer')}> <label className={clsx('TodoItem',
{todo.name} 'border-[1px] border-base-300 shadow rounded-lg p-4 w-full cursor-pointer',
<input type={"checkbox"} onChange={handleCheck} checked={todo.checked} className={"checkbox checkbox-primary"}/> 'flex items-center justify-between gap-5')}>
<span className={"break-all"}>{todo.name}</span>
<input type={'checkbox'} onChange={handleCheck} checked={todo.checked}
className={'checkbox checkbox-primary'}/>
</label> </label>
); );
} }