diff --git a/src/components/ordering/MenuBackdrop.module.scss b/src/components/ordering/MenuBackdrop.module.scss
deleted file mode 100644
index 204519d..0000000
--- a/src/components/ordering/MenuBackdrop.module.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-.backdrop {
- position: absolute;
- inset: 0;
- z-index: -1;
- overflow: hidden;
- pointer-events: none;
- filter: blur(3px) grayscale(1);
- opacity: 0.6;
- background-repeat: repeat;
- background-size: 340px 340px;
-}
diff --git a/src/components/ordering/MenuBackdrop.tsx b/src/components/ordering/MenuBackdrop.tsx
deleted file mode 100644
index dddacf8..0000000
--- a/src/components/ordering/MenuBackdrop.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-import styles from './MenuBackdrop.module.scss'
-
-// Rendered once as a tiny repeating SVG tile (not as individual DOM icons)
-// set as a CSS background-image, rather than one element per icon.
-const pizza = (color: string) => `
-
-
-
-
-`
-
-const burger = (color: string) => `
-
-
-
-
-
-`
-
-const fries = (color: string) => `
-
-
-`
-
-const ICON_VARIANTS = [pizza, burger, fries]
-const ICON_COLORS = [
- '#e2725b', // tomato
- '#d9a441', // crust
- '#e8c468', // cheese
- '#7a9d6e', // basil
- '#a5678f', // berry
- '#8a5a44', // cocoa
-]
-
-// One icon centered in each grid cell within the tile, so they line up
-// evenly instead of clustering.
-const TILE_SIZE = 240
-const GRID_COLS = 4
-const GRID_ROWS = 4
-const CELL_WIDTH = TILE_SIZE / GRID_COLS
-const CELL_HEIGHT = TILE_SIZE / GRID_ROWS
-const ICON_SIZE = 30
-const ICON_SCALE = ICON_SIZE / 24
-
-const buildTileSvg = () => {
- const instances = Array.from(
- { length: GRID_COLS * GRID_ROWS },
- (_, index) => {
- const col = index % GRID_COLS
- const row = Math.floor(index / GRID_COLS)
- const x = col * CELL_WIDTH + CELL_WIDTH / 2
- const y = row * CELL_HEIGHT + CELL_HEIGHT / 2
- const rotate = ((index * 29) % 48) - 24
- const color = ICON_COLORS[index % ICON_COLORS.length]
- const icon = ICON_VARIANTS[index % ICON_VARIANTS.length](color)
- const transform = `translate(${x.toFixed(1)} ${y.toFixed(1)}) rotate(${rotate}) scale(${ICON_SCALE.toFixed(3)}) translate(-12 -12)`
- return `${icon}`
- },
- ).join('')
-
- return ``
-}
-
-const TILE_DATA_URL = `data:image/svg+xml,${encodeURIComponent(buildTileSvg())}`
-
-export const MenuBackdrop = () => (
-
-)
diff --git a/src/components/orders/OrdersListView.module.scss b/src/components/orders/OrdersListView.module.scss
index d21b6b9..10fe73e 100644
--- a/src/components/orders/OrdersListView.module.scss
+++ b/src/components/orders/OrdersListView.module.scss
@@ -22,8 +22,6 @@
}
.empty {
- position: relative;
- z-index: 0;
display: flex;
flex-direction: column;
align-items: center;
@@ -33,15 +31,12 @@
border: 1px dashed $color-border;
border-radius: $radius;
background: $color-surface;
- overflow: hidden;
@media (prefers-reduced-motion: no-preference) {
animation: empty-state-enter 0.32s cubic-bezier(0.2, 0, 0, 1) both;
}
- // Direct child only — a plain descendant selector would also catch the
- // backdrop's own icons (see MenuBackdrop), overriding their per-icon color.
- > svg {
+ svg {
width: 2.5rem;
height: 2.5rem;
margin-bottom: $space-2;
diff --git a/src/components/orders/OrdersListView.tsx b/src/components/orders/OrdersListView.tsx
index 5523033..bea2a4f 100644
--- a/src/components/orders/OrdersListView.tsx
+++ b/src/components/orders/OrdersListView.tsx
@@ -1,7 +1,6 @@
import { Link } from '@tanstack/react-router'
import { useEffect, useRef, useState } from 'react'
-import { MenuBackdrop } from '#/components/ordering/MenuBackdrop.tsx'
import type { CustomerOrderSummary } from '#/domain/ordering.ts'
import { formatPrice } from '#/lib/format.ts'
@@ -65,7 +64,6 @@ export const OrdersListView = ({ orders }: OrdersListViewProps) => {
Your orders
{displayedOrders.length === 0 ? (
-
No orders yet
diff --git a/src/routes/basket.module.scss b/src/routes/basket.module.scss
index 0822f76..648a789 100644
--- a/src/routes/basket.module.scss
+++ b/src/routes/basket.module.scss
@@ -20,8 +20,6 @@
}
.empty {
- position: relative;
- z-index: 0;
display: flex;
flex-direction: column;
align-items: center;
@@ -31,11 +29,8 @@
border: 1px dashed $color-border;
border-radius: $radius;
background: $color-surface;
- overflow: hidden;
- // Direct child only — a plain descendant selector would also catch the
- // backdrop's own icons (see MenuBackdrop), overriding their per-icon color.
- > svg {
+ svg {
width: 2.5rem;
height: 2.5rem;
margin-bottom: $space-2;
diff --git a/src/routes/basket.tsx b/src/routes/basket.tsx
index 5e18a7e..d1b0203 100644
--- a/src/routes/basket.tsx
+++ b/src/routes/basket.tsx
@@ -3,7 +3,6 @@ import { AnimatePresence, motion, useReducedMotion } from 'framer-motion'
import { BasketIcon } from '#/components/basket/BasketLink.tsx'
import { CheckoutSection } from '#/components/ordering/CheckoutSection.tsx'
-import { MenuBackdrop } from '#/components/ordering/MenuBackdrop.tsx'
import { AnimatedNumber } from '#/components/ui/AnimatedNumber.tsx'
import type { MenuItemWithRecipe } from '#/domain/ordering.ts'
import { useBasket } from '#/lib/basket.tsx'
@@ -72,7 +71,6 @@ const BasketPage = () => {
exit={{ opacity: 0 }}
transition={transition}
>
-
Your basket is empty