style(app): mobile-native layout with safe areas and grouped list

This commit is contained in:
devcodetools committed 2026-09-13 17:11:30 +02:00
1 parent 4ae6ff61b4
commit 98e5343bc3
6 files changed
+18 -8

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@ function FloatingButton({ onClick, label = 'Créer une note' }: FloatingButtonPr
type="button"
onClick={onClick}
aria-label={label}
className="fixed bottom-6 right-6 z-20 flex h-14 w-14 items-center justify-center rounded-full bg-blue-700 text-3xl text-white shadow-lg transition-transform hover:bg-blue-800 active:scale-95 focus:outline-none focus:ring-2 focus:ring-blue-800 focus:ring-offset-2"
className="fixed bottom-[calc(env(safe-area-inset-bottom)+1.5rem)] right-6 z-20 flex h-14 w-14 items-center justify-center rounded-full bg-blue-700 text-3xl text-white shadow-lg transition-transform hover:bg-blue-800 active:scale-95 focus:outline-none focus:ring-2 focus:ring-blue-800 focus:ring-offset-2"
>
+
</button>
+2 -2
View File
@@ -17,7 +17,7 @@ function NoteForm({
}: NoteFormProps) {
return (
<form
className="flex flex-col gap-4 rounded-xl border border-gray-200 bg-white p-4 shadow-sm"
className="flex flex-col gap-4 rounded-2xl border border-gray-200 bg-white p-4 shadow-sm"
onSubmit={(event) => {
event.preventDefault()
onSubmit()
@@ -114,7 +114,7 @@ function NoteEditor(props: NoteEditorProps) {
const { note } = props
return (
<article className="flex flex-col gap-5 rounded-xl border border-gray-200 bg-white p-4 shadow-sm">
<article className="flex flex-col gap-5 rounded-2xl border border-gray-200 bg-white p-4 shadow-sm">
<div className="flex items-start justify-between gap-4">
<h2 className="text-xl font-semibold leading-snug">{note.title || 'Sans titre'}</h2>
<button
+2 -2
View File
@@ -12,14 +12,14 @@ function NoteList({ notes, onSelect }: NoteListProps) {
}
return (
<ul className="flex flex-col divide-y divide-gray-100">
<ul className="flex flex-col divide-y divide-gray-100 overflow-hidden rounded-2xl bg-white shadow-sm">
{notes.map((note) => (
<li key={note.id}>
<button
type="button"
onClick={() => onSelect(note.id)}
aria-label={note.title ? `Ouvrir la note ${note.title}` : 'Ouvrir la note Sans titre'}
className="flex w-full items-center justify-between gap-3 px-2 py-4 text-left text-base hover:bg-gray-50 active:bg-gray-100"
className="flex w-full min-h-14 items-center justify-between gap-3 px-4 py-5 text-left text-base active:bg-gray-50"
>
<span className={note.title ? 'text-gray-800' : 'italic text-gray-400'}>
{note.title || 'Sans titre'}