Depends on #13; the controls belong to the settings page with live preview from #14.
A few switches instead of a free layout editor:
Content width: full width (current) / centred column with a maximal width.
Arrangement: "Booking" and "Who is booking" cards side by side (current) / below each other.
Time slots: normal / large buttons (easier to hit on a phone).
Corners: rounded (current) / square — applies to cards, buttons and inputs.
Notes
Each option is an enumerated value in the appearance table, validated on the server, and ends up as a class or CSS variable on the public page wrapper; the markup of src/pages/public.rs stays the same for all combinations, so there is nothing new to go wrong in hydration.
Side by side still collapses to one column on a narrow screen.
The booking form in the "Create booking" dialog of the admin portal keeps the default layout.
Defaults equal the current look.
Out of scope
A timetable view of the slots (properties × hours in one grid) would need a rewrite of TimeSelector; to be considered separately.
Acceptance
Every option shows in the live preview and on the public page; all combinations checked at mobile and desktop width.
Unit tests for validation of the values.
Depends on #13; the controls belong to the settings page with live preview from #14.
A few switches instead of a free layout editor:
- Content width: full width (current) / centred column with a maximal width.
- Arrangement: "Booking" and "Who is booking" cards side by side (current) / below each other.
- Time slots: normal / large buttons (easier to hit on a phone).
- Corners: rounded (current) / square — applies to cards, buttons and inputs.
## Notes
- Each option is an enumerated value in the `appearance` table, validated on the server, and ends up as a class or CSS variable on the public page wrapper; the markup of `src/pages/public.rs` stays the same for all combinations, so there is nothing new to go wrong in hydration.
- Side by side still collapses to one column on a narrow screen.
- The booking form in the "Create booking" dialog of the admin portal keeps the default layout.
- Defaults equal the current look.
## Out of scope
A timetable view of the slots (properties × hours in one grid) would need a rewrite of `TimeSelector`; to be considered separately.
## Acceptance
- Every option shows in the live preview and on the public page; all combinations checked at mobile and desktop width.
- Unit tests for validation of the values.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Depends on #13; the controls belong to the settings page with live preview from #14.
A few switches instead of a free layout editor:
Notes
appearancetable, validated on the server, and ends up as a class or CSS variable on the public page wrapper; the markup ofsrc/pages/public.rsstays the same for all combinations, so there is nothing new to go wrong in hydration.Out of scope
A timetable view of the slots (properties × hours in one grid) would need a rewrite of
TimeSelector; to be considered separately.Acceptance