vault backup: 2026-03-07 11:51:57
This commit is contained in:
@@ -0,0 +1,259 @@
|
||||
# Bathroom - Codex recommendations
|
||||
|
||||
> Created: 2026-03-07
|
||||
> Purpose: Separate scratch note with Codex recommendations, inspiration directions, and source links.
|
||||
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
This note is separate from `Bathroom.md`.
|
||||
|
||||
It is based on:
|
||||
|
||||
- ![[Bathroom Blueprint.svg]]
|
||||
- The current draft layout shown there
|
||||
- Current bath design and technical guidance reviewed on 2026-03-07
|
||||
|
||||
---
|
||||
|
||||
## My Read of the Room
|
||||
|
||||
- The footprint is compact but not tiny: about `4.9 m2`.
|
||||
- The stepped top-right corner is useful, not awkward. It gives you a natural shower zone.
|
||||
- The outward-opening door is good because it preserves usable floor area.
|
||||
- The room can probably support `bath + shower + toilet + vanity`, but only if you are disciplined about fixture sizes and storage.
|
||||
- The largest unresolved planning item is still the toilet position. That decision drives plumbing complexity, clearances, and whether the bath remains worth keeping.
|
||||
|
||||
---
|
||||
|
||||
## My Strongest Recommendations
|
||||
|
||||
### 1. Keep the shower in the existing nook
|
||||
|
||||
- The `~1000 x 1000` shower nook is one of the best things about this layout.
|
||||
- It already creates a wet zone without needing a complicated enclosure.
|
||||
- If you want a cleaner look, use a fixed glass panel or very minimal enclosure rather than a visually heavy shower cabin.
|
||||
|
||||
### 2. Decide whether the bathtub is truly essential
|
||||
|
||||
- If the bathtub is a real use case, keep it and make it deliberate.
|
||||
- If the bathtub is mostly hypothetical, removing it is probably the single biggest upgrade to practicality.
|
||||
- A tub removal would likely buy you some combination of:
|
||||
- easier toilet placement
|
||||
- larger vanity
|
||||
- better circulation
|
||||
- calmer sightlines
|
||||
- more useful storage
|
||||
|
||||
### 3. Use a wall-hung vanity with drawers
|
||||
|
||||
- In a room this size, drawers are materially better than doors.
|
||||
- A wall-hung vanity keeps more floor visible and makes cleaning easier.
|
||||
- If possible, pair it with a mirrored cabinet rather than only a flat mirror.
|
||||
|
||||
### 4. Keep the finish palette calm
|
||||
|
||||
- This room will benefit more from visual calm than from lots of feature moments.
|
||||
- Use fewer finish changes than your first instinct suggests.
|
||||
- Aim for:
|
||||
- one main tile family
|
||||
- one vanity material
|
||||
- one metal finish
|
||||
- one restrained accent color
|
||||
|
||||
### 5. Spend money on invisible performance before visible styling
|
||||
|
||||
- Prioritize ventilation, waterproofing, drainage, lighting, and storage planning before decorative upgrades.
|
||||
- Bathrooms punish bad hidden decisions much harder than most other rooms.
|
||||
|
||||
---
|
||||
|
||||
## Design Directions I Think Fit This Room
|
||||
|
||||
### Warm spa
|
||||
|
||||
- Large-format matte porcelain in warm off-white, sand, or light taupe
|
||||
- Oak or walnut vanity
|
||||
- Brushed nickel or stainless taps
|
||||
- Soft integrated mirror lighting
|
||||
- Sage or clay accents
|
||||
|
||||
Why it fits:
|
||||
|
||||
- Works well in a compact room
|
||||
- Feels calm rather than cold
|
||||
- Ages better than trend-heavy contrast schemes
|
||||
|
||||
### Quiet hotel
|
||||
|
||||
- Seamless floor-to-wall tile palette
|
||||
- Floating vanity
|
||||
- Frameless or near-frameless shower glass
|
||||
- Recessed niche
|
||||
- Very low-contrast grout
|
||||
|
||||
Why it fits:
|
||||
|
||||
- Makes the room feel larger
|
||||
- Gives the bath and shower a more intentional feel
|
||||
- Works especially well if you want the room to feel expensive without adding visual noise
|
||||
|
||||
### Vintage modern
|
||||
|
||||
- More character in the floor tile
|
||||
- Vanity with more furniture presence
|
||||
- Framed mirror
|
||||
- Decorative sconces or warmer vanity lighting
|
||||
- Brushed brass or aged metal accents
|
||||
|
||||
Why it fits:
|
||||
|
||||
- Good if you want something less generic
|
||||
- Pairs well with older building character
|
||||
- Needs discipline so it does not become busy
|
||||
|
||||
---
|
||||
|
||||
## What I Would Probably Do
|
||||
|
||||
If the bathtub must stay:
|
||||
|
||||
- Keep the shower in the nook
|
||||
- Keep the outward-opening door
|
||||
- Use a compact wall-hung vanity with drawers
|
||||
- Use a mirrored cabinet
|
||||
- Reassess the radiator position early
|
||||
- Use large matte tile and keep the palette light and warm
|
||||
|
||||
If the bathtub is optional:
|
||||
|
||||
- Remove the tub
|
||||
- Keep and improve the shower zone
|
||||
- Spend the gained flexibility on toilet placement, vanity width, and storage
|
||||
- Consider underfloor heating plus a smaller towel radiator instead of letting the radiator dictate the plan
|
||||
|
||||
---
|
||||
|
||||
## Things To Lock Before You Shop
|
||||
|
||||
- Toilet position
|
||||
- Existing drain and supply locations
|
||||
- Whether the bath stays
|
||||
- Radiator strategy
|
||||
- Vanity width and depth
|
||||
- Door clearance around all fixtures
|
||||
- Fan position and duct route
|
||||
- Lighting layout
|
||||
- Whether the shower will be curbed, low-threshold, or fully curbless
|
||||
|
||||
Do not buy taps, mirrors, or tile before those decisions are stable.
|
||||
|
||||
---
|
||||
|
||||
## Practical Guidance I Would Follow
|
||||
|
||||
### Ventilation
|
||||
|
||||
- For bathrooms up to `100 sq ft`, Home Ventilating Institute guidance is `1 CFM per sq ft`, with a minimum of `50 CFM`.
|
||||
- Your draft room is about `53 sq ft`, so the baseline is roughly `53 CFM`.
|
||||
- In practice, I would treat that as a floor, not a target. Long duct runs, bends, and quiet operation requirements usually justify going above the minimum.
|
||||
- A humidity sensor and run-on timer are worth it.
|
||||
|
||||
### Flooring and slip resistance
|
||||
|
||||
- Do not pick polished floor tile for this room.
|
||||
- Confirm the manufacturer classifies the tile for `Interior, Wet (IW)` use under `ANSI A326.3`.
|
||||
- For the shower floor, be even more conservative.
|
||||
|
||||
### Waterproofing
|
||||
|
||||
- Treat the shower waterproofing system as a system, not as a pile of compatible-looking parts.
|
||||
- Keep it simple enough that the installer cannot improvise critical details.
|
||||
- Flood-test the shower before tile goes in.
|
||||
|
||||
### Lighting
|
||||
|
||||
- Use layered lighting:
|
||||
- general ceiling light
|
||||
- mirror task lighting
|
||||
- shower light if needed
|
||||
- optional low-level night lighting
|
||||
- A backlit mirror looks good, but it should not be the only useful light at the vanity.
|
||||
|
||||
### Storage
|
||||
|
||||
- Plan storage for boring items, not aspirational styling:
|
||||
- toilet paper
|
||||
- spare toiletries
|
||||
- cleaning supplies
|
||||
- hair tools
|
||||
- medicine
|
||||
- laundry overflow
|
||||
- Recessed shower niches are usually worth it if planned early.
|
||||
|
||||
---
|
||||
|
||||
## Common Failure Modes
|
||||
|
||||
- Keeping the tub by default and regretting the loss of space every day
|
||||
- Choosing floor tile for appearance first and wet performance second
|
||||
- Treating the fan as a checkbox instead of a real moisture-control system
|
||||
- Buying a flat mirror when a mirrored cabinet would solve actual storage pressure
|
||||
- Letting the radiator location stay unchallenged
|
||||
- Overusing feature tiles, contrasting grout, and multiple finishes in a compact footprint
|
||||
- Solving aesthetics before plumbing reality
|
||||
|
||||
---
|
||||
|
||||
## Current Design Signals Worth Paying Attention To
|
||||
|
||||
- `Houzz 2025 Bathroom Trends` reports wet rooms at `16%` of renovated bathrooms, with half of those homeowners saying the choice helped them use space better.
|
||||
- The same Houzz study says `36%` of renovated bathrooms include wellness-oriented features, led by upgraded lighting at `30%`.
|
||||
- `NKBA 2026 Bath Trends` points toward light neutrals, large-format flooring, wood-faced vanities, matte or brushed faucet finishes, larger showers, and layered lighting.
|
||||
- Houzz search data in 2025 also points toward more interest in white oak bathroom vanities, vintage bathroom vanities, and warm metal accents.
|
||||
|
||||
My interpretation:
|
||||
|
||||
- The safe center of the market is moving warmer, calmer, and more natural.
|
||||
- That aligns well with your room.
|
||||
- I would avoid cold gray, polished chrome everywhere, and busy patterned surfaces unless you want a more stylized result on purpose.
|
||||
|
||||
---
|
||||
|
||||
## Source List
|
||||
|
||||
### Technical and planning
|
||||
|
||||
- Home Ventilating Institute: bathroom ventilation sizing
|
||||
- https://www.hvi.org/resources/publications/bathroom-ventilation/
|
||||
- Home Ventilating Institute: certified products directory
|
||||
- https://www.hvi.org/hvi-certified-products-directory/
|
||||
- Tile Council of North America: `ANSI A326.3` product use classifications
|
||||
- https://tcnatile.com/national-standard-ansi-a326-3-now-requires-hard-surface-flooring-manufacturers-to-provide-product-use-classifications-based-on-their-slip-resistance-properties/
|
||||
- Schluter: shower system installation guidance and water testing reference
|
||||
- https://www.schluter.com/schluter-us/en_US/kerdi-shower-kit-installation-instructions
|
||||
- Schluter: shower system installation handbook PDF
|
||||
- https://assets.schluter.com/asset/570120892212/document_i2tt9fh4sp2n562jmirhppbv4o/Shower%20System%20Installation%20Handbook.pdf
|
||||
|
||||
### Trend and inspiration
|
||||
|
||||
- Houzz: 2025 U.S. Bathroom Trends Study
|
||||
- https://www.houzz.com/magazine/2025-u-s-houzz-bathroom-trends-study-stsetivw-vs~183227801
|
||||
- NKBA: 2026 Bath Trends Report announcement
|
||||
- https://nkba.org/press/nkba-kbis-releases-annual-2026-bath-trends-report/
|
||||
- NKBA: 2026 Bath Trends Report overview
|
||||
- https://kb.nkba.org/research/nkba-kbis-2026-bath-trends-report/
|
||||
- Houzz: 2025 emerging summer trends report
|
||||
- https://blog.houzz.com/2025-u-s-houzz-emerging-summer-trends-report/
|
||||
|
||||
---
|
||||
|
||||
## Use This Note For
|
||||
|
||||
- Deciding whether the bathtub stays
|
||||
- Narrowing the aesthetic direction
|
||||
- Building a shortlist for tile, vanity, lighting, and ventilation
|
||||
- Sanity-checking contractor proposals
|
||||
|
||||
Do not use this note as a substitute for verifying actual plumbing constraints, local electrical rules, waterproofing details, or fixture dimensions.
|
||||
245
Personal/Areas/Home improvement/Bathroom Blueprint Future.svg
Normal file
245
Personal/Areas/Home improvement/Bathroom Blueprint Future.svg
Normal file
@@ -0,0 +1,245 @@
|
||||
|
||||
<!-- W: 2500 + 500 each side -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3500 3600" width="800" height="820"
|
||||
font-family="monospace" font-size="48">
|
||||
<!-- Background -->
|
||||
<rect width="3500" height="3600" fill="#f8f8f8" />
|
||||
|
||||
<!-- Title -->
|
||||
|
||||
|
||||
<!-- Room in mm. Visual: A at top, F/E (origin) at bottom-left.
|
||||
SVG coords = (arch_x, 2600 - arch_y) so Y-up maps to SVG Y-down.
|
||||
Polygon (SVG): A(0,0) B(2500,0) C(2500,1000) D(1500,1000) E(1500,2600) F(0,2600)
|
||||
Arch coords: A(0,2600) B(2500,2600) C(2500,1600) D(1500,1600) E(1500,0) F(0,0)
|
||||
-->
|
||||
<!-- Make y be upwards increasing and add 500 padding -->
|
||||
<g transform="translate(500, 3000) scale(1,-1)">
|
||||
|
||||
<!-- Fix text orientation -->
|
||||
<g transform="translate(1250, 2850) scale(1,-1)">
|
||||
<text text-anchor="middle" font-size="80" font-weight="bold"
|
||||
fill="#333">Bathroom Blueprint (Future)</text>
|
||||
|
||||
</g>
|
||||
|
||||
|
||||
<!-- Room outline — wall E split into solid (550mm wall) + dashed (door) -->
|
||||
<!-- F(0,0) E(1500,0) D(1500,1600) C(2500,1600) B(2500,2600) A(0,2600) -->
|
||||
<!-- Fill only -->
|
||||
<polygon
|
||||
points="0,0 0,2600 2500,2600 2500,1600 1500,1600 1500,0"
|
||||
fill="white" stroke="none" />
|
||||
<!-- All walls except E as solid path -->
|
||||
<path d="M 0,0 L 0,2600 L 2500,2600 L 2500,1600 L 1500,1600 L 1500,0"
|
||||
fill="none" stroke="#333" stroke-width="16" stroke-linejoin="miter" />
|
||||
<!-- Wall E: solid 550mm wall segment -->
|
||||
<line x1="0" y1="0" x2="550" y2="0" stroke="#333" stroke-width="16" />
|
||||
<!-- Wall E: dashed door opening -->
|
||||
<line x1="550" y1="0" x2="1500" y2="0" stroke="#333" stroke-width="16" stroke-dasharray="40,25" />
|
||||
|
||||
<!-- ========== DIMENSIONS ========== -->
|
||||
<!-- Pattern: line at ±60 from wall, ticks ±25, text at ±120 flipped -->
|
||||
|
||||
<!-- Wall E: y=0, 1500mm -->
|
||||
<line x1="0" y1="calc(0 - 60)" x2="1500" y2="calc(0 - 60)" stroke="#555" stroke-width="4" />
|
||||
<line x1="0" y1="calc(0 - 60 - 25)" x2="0" y2="calc(0 - 60 + 25)" stroke="#555" stroke-width="4" />
|
||||
<line x1="1500" y1="calc(0 - 60 - 25)" x2="1500" y2="calc(0 - 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(750, -120) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555">E: 1500mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall A: y=2600, 2500mm -->
|
||||
<line x1="0" y1="calc(2600 + 60)" x2="2500" y2="calc(2600 + 60)" stroke="#555" stroke-width="4" />
|
||||
<line x1="0" y1="calc(2600 + 60 - 25)" x2="0" y2="calc(2600 + 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="2500" y1="calc(2600 + 60 - 25)" x2="2500" y2="calc(2600 + 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(1250, 2720) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555">A: 2500mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall F: x=0, 2600mm -->
|
||||
<line x1="calc(0 - 60)" y1="0" x2="calc(0 - 60)" y2="2600" stroke="#555" stroke-width="4" />
|
||||
<line x1="calc(0 - 60 - 25)" y1="0" x2="calc(0 - 60 + 25)" y2="0" stroke="#555" stroke-width="4" />
|
||||
<line x1="calc(0 - 60 - 25)" y1="2600" x2="calc(0 - 60 + 25)" y2="2600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(-120, 1300) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555"
|
||||
transform="rotate(90)">F: 2600mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall B: x=2500, 1000mm (y=1600 to y=2600) -->
|
||||
<line x1="calc(2500 + 60)" y1="1600" x2="calc(2500 + 60)" y2="2600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="calc(2500 + 60 - 25)" y1="1600" x2="calc(2500 + 60 + 25)" y2="1600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="calc(2500 + 60 - 25)" y1="2600" x2="calc(2500 + 60 + 25)" y2="2600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(2620, 2100) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555"
|
||||
transform="rotate(-90)">B: 1000mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall C: y=1600, 1000mm (x=1500 to x=2500) -->
|
||||
<line x1="1500" y1="calc(1600 - 60)" x2="2500" y2="calc(1600 - 60)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="1500" y1="calc(1600 - 60 - 25)" x2="1500" y2="calc(1600 - 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="2500" y1="calc(1600 - 60 - 25)" x2="2500" y2="calc(1600 - 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(2000, 1480) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555">C: 1000mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall D: x=1500, 1600mm (y=0 to y=1600) -->
|
||||
<line x1="calc(1500 + 60)" y1="0" x2="calc(1500 + 60)" y2="1600" stroke="#555" stroke-width="4" />
|
||||
<line x1="calc(1500 + 60 - 25)" y1="0" x2="calc(1500 + 60 + 25)" y2="0" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="calc(1500 + 60 - 25)" y1="1600" x2="calc(1500 + 60 + 25)" y2="1600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(1620, 800) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555"
|
||||
transform="rotate(-90)">D: 1600mm</text>
|
||||
</g>
|
||||
|
||||
<!-- ========== FIXTURES (PLANNED) ========== -->
|
||||
|
||||
<!-- Bath: freestanding corner bath 1800x800, corner A/F, 25mm gap from walls -->
|
||||
<rect x="25" y="800" width="775" height="1775" rx="60" fill="none" stroke="#333"
|
||||
stroke-width="10" />
|
||||
<rect x="75" y="850" width="675" height="1675" rx="50" fill="#d4e8f7" fill-opacity="0.3"
|
||||
stroke="#999" stroke-width="5" />
|
||||
<!-- Faucet: middle of bath, wall F side -->
|
||||
<circle cx="40" cy="1700" r="30" fill="none" stroke="#4a90d9" stroke-width="7" />
|
||||
<circle cx="40" cy="1700" r="10" fill="#4a90d9" />
|
||||
<!-- Drain -->
|
||||
<circle cx="400" cy="925" r="25" fill="none" stroke="#999" stroke-width="5" />
|
||||
<g transform="translate(400, 1700) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="45" fill="#666">Bath</text>
|
||||
</g>
|
||||
<g transform="translate(400, 1645) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#666">1800x800</text>
|
||||
</g>
|
||||
|
||||
<!-- Shower: nook, x=1500-2500, y=1600-2600 -->
|
||||
<rect x="1500" y="1600" width="1000" height="1000" fill="#d4e8f7" fill-opacity="0.4"
|
||||
stroke="#333" stroke-width="10" stroke-dasharray="30,15" />
|
||||
<!-- Shower head: middle of wall B -->
|
||||
<circle cx="2475" cy="2100" r="60" fill="none" stroke="#4a90d9" stroke-width="7" />
|
||||
<circle cx="2475" cy="2100" r="20" fill="#4a90d9" />
|
||||
<!-- Drain -->
|
||||
<circle cx="2000" cy="2100" r="35" fill="none" stroke="#999" stroke-width="5" />
|
||||
<line x1="1980" y1="2100" x2="2020" y2="2100" stroke="#999" stroke-width="5" />
|
||||
<line x1="2000" y1="2080" x2="2000" y2="2120" stroke="#999" stroke-width="5" />
|
||||
<g transform="translate(2000, 2200) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="45" fill="#4a90d9">Shower</text>
|
||||
</g>
|
||||
<g transform="translate(2000, 2140) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#4a90d9">
|
||||
(~1000x1000)</text>
|
||||
</g>
|
||||
|
||||
<!-- Sink: wall F, y=150 to y=600 (between origin and bath), depth 500mm -->
|
||||
<rect x="25" y="150" width="500" height="450" rx="15" fill="none" stroke="#333"
|
||||
stroke-width="10" />
|
||||
<ellipse cx="275" cy="375" rx="90" ry="130" fill="none" stroke="#333" stroke-width="7" />
|
||||
<!-- Faucet -->
|
||||
<circle cx="100" cy="375" r="18" fill="none" stroke="#4a90d9" stroke-width="7" />
|
||||
<circle cx="100" cy="375" r="6" fill="#4a90d9" />
|
||||
<g transform="translate(275, 375) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="45" fill="#666">Sink</text>
|
||||
</g>
|
||||
|
||||
<!-- Shelf: wall A, 800mm long, 250mm deep, 500mm from wall F -->
|
||||
<rect x="500" y="calc(2600 - 250)" width="800" height="250" fill="#c8b896" fill-opacity="0.3"
|
||||
stroke="#999" stroke-width="5" />
|
||||
<g transform="translate(900, 2475) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="35" fill="#666">Shelf 800x250</text>
|
||||
</g>
|
||||
|
||||
<!-- Ceiling light: 1100 from wall F, 700 from wall A → (1100, 2600-700) = (1100, 1900), r=210 -->
|
||||
<circle cx="1100" cy="1900" r="210" fill="none" stroke="#f5a623" stroke-width="6"/>
|
||||
<line x1="1070" y1="1900" x2="1130" y2="1900" stroke="#f5a623" stroke-width="4"/>
|
||||
<line x1="1100" y1="1870" x2="1100" y2="1930" stroke="#f5a623" stroke-width="4"/>
|
||||
<g transform="translate(1100, 1830) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="35" fill="#f5a623">Light (420mm)</text>
|
||||
</g>
|
||||
|
||||
<!-- Vent: on wall D, centered on radiator (y=900) -->
|
||||
<rect x="1400" y="850" width="100" height="100" fill="none" stroke="#888" stroke-width="5" stroke-dasharray="15,8"/>
|
||||
<line x1="1400" y1="850" x2="1500" y2="950" stroke="#888" stroke-width="3"/>
|
||||
<line x1="1500" y1="850" x2="1400" y2="950" stroke="#888" stroke-width="3"/>
|
||||
<g transform="translate(1350, 900) scale(1,-1)">
|
||||
<text text-anchor="end" dominant-baseline="central" font-size="35" fill="#888">Vent</text>
|
||||
</g>
|
||||
|
||||
<!-- Radiator: wall D (x=1500), 600mm, 600mm from door -->
|
||||
<rect x="1425" y="600" width="75" height="600" fill="#e85d3a" fill-opacity="0.4"
|
||||
stroke="#e85d3a" stroke-width="7" />
|
||||
|
||||
<!-- Dimension: 600mm gap radiator to door on wall D -->
|
||||
<line x1="calc(1500 + 120)" y1="0" x2="calc(1500 + 120)" y2="600" stroke="#555" stroke-width="4" />
|
||||
<line x1="calc(1500 + 120 - 25)" y1="0" x2="calc(1500 + 120 + 25)" y2="0" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="calc(1500 + 120 - 25)" y1="600" x2="calc(1500 + 120 + 25)" y2="600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(1680, 300) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="42" fill="#555"
|
||||
transform="rotate(-90)">600</text>
|
||||
</g>
|
||||
|
||||
<!-- Dimension: 550mm wall segment left of door -->
|
||||
<line x1="0" y1="calc(0 - 150)" x2="550" y2="calc(0 - 150)" stroke="#555" stroke-width="4" />
|
||||
<line x1="0" y1="calc(0 - 150 - 25)" x2="0" y2="calc(0 - 150 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="550" y1="calc(0 - 150 - 25)" x2="550" y2="calc(0 - 150 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(275, -210) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="42" fill="#555">550</text>
|
||||
</g>
|
||||
|
||||
<!-- Scale bar -->
|
||||
<line x1="1700" y1="-200" x2="2700" y2="-200" stroke="#333" stroke-width="8" />
|
||||
<line x1="1700" y1="calc(-200 - 25)" x2="1700" y2="calc(-200 + 25)" stroke="#333"
|
||||
stroke-width="8" />
|
||||
<line x1="2200" y1="calc(-200 - 15)" x2="2200" y2="calc(-200 + 15)" stroke="#333"
|
||||
stroke-width="5" />
|
||||
<line x1="2700" y1="calc(-200 - 25)" x2="2700" y2="calc(-200 + 25)" stroke="#333"
|
||||
stroke-width="8" />
|
||||
<g transform="translate(1700, -260) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#333">0</text>
|
||||
</g>
|
||||
<g transform="translate(2200, -260) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#333">500</text>
|
||||
</g>
|
||||
<g transform="translate(2700, -260) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#333">1000mm</text>
|
||||
</g>
|
||||
|
||||
</g>
|
||||
|
||||
<!-- Legend (outside the flipped group, normal SVG coords) -->
|
||||
<g transform="translate(2650, 2400)">
|
||||
<text x="0" y="0" font-size="50" font-weight="bold" fill="#333">Legend</text>
|
||||
<line x1="0" y1="60" x2="80" y2="60" stroke="#333" stroke-width="14" />
|
||||
<text x="100" y="75" font-size="40" fill="#555">Wall</text>
|
||||
<line x1="0" y1="120" x2="80" y2="120" stroke="#333" stroke-width="8" stroke-dasharray="20,10" />
|
||||
<text x="100" y="135" font-size="40" fill="#555">Shower</text>
|
||||
<circle cx="40" cy="180" r="18" fill="#4a90d9" />
|
||||
<text x="100" y="195" font-size="40" fill="#555">Water</text>
|
||||
<rect x="0" y="225" width="80" height="40" fill="#e85d3a" fill-opacity="0.4" stroke="#e85d3a"
|
||||
stroke-width="4" />
|
||||
<text x="100" y="255" font-size="40" fill="#555">Radiator</text>
|
||||
<line x1="0" y1="300" x2="80" y2="300" stroke="#333" stroke-width="14" stroke-dasharray="20,12" />
|
||||
<text x="100" y="315" font-size="40" fill="#555">Door</text>
|
||||
<circle cx="40" cy="360" r="18" fill="none" stroke="#f5a623" stroke-width="4" />
|
||||
<text x="100" y="375" font-size="40" fill="#555">Light</text>
|
||||
<rect x="15" y="405" width="50" height="50" fill="none" stroke="#888" stroke-width="3" stroke-dasharray="8,5" />
|
||||
<line x1="15" y1="405" x2="65" y2="455" stroke="#888" stroke-width="2" />
|
||||
<line x1="65" y1="405" x2="15" y2="455" stroke="#888" stroke-width="2" />
|
||||
<text x="100" y="440" font-size="40" fill="#555">Vent</text>
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
@@ -19,43 +19,237 @@
|
||||
<!-- Fix text orientation -->
|
||||
<g transform="translate(1250, 2850) scale(1,-1)">
|
||||
<text text-anchor="middle" font-size="80" font-weight="bold"
|
||||
fill="#333">Bathroom
|
||||
Blueprint</text>
|
||||
fill="#333">Bathroom Blueprint (Current)</text>
|
||||
|
||||
</g>
|
||||
|
||||
|
||||
<!-- Room outline -->
|
||||
<!-- Room outline — wall E split into solid (550mm wall) + dashed (door) -->
|
||||
<!-- F(0,0) E(1500,0) D(1500,1600) C(2500,1600) B(2500,2600) A(0,2600) -->
|
||||
<!-- Fill only -->
|
||||
<polygon
|
||||
points="0,0 0,2600 2500,2600 2500,1500 1500,1500 1500,0"
|
||||
fill=" white" stroke=" #333" stroke-width=" 16" stroke-linejoin=" miter" />
|
||||
points="0,0 0,2600 2500,2600 2500,1600 1500,1600 1500,0"
|
||||
fill="white" stroke="none" />
|
||||
<!-- All walls except E as solid path -->
|
||||
<path d="M 0,0 L 0,2600 L 2500,2600 L 2500,1600 L 1500,1600 L 1500,0"
|
||||
fill="none" stroke="#333" stroke-width="16" stroke-linejoin="miter" />
|
||||
<!-- Wall E: solid 550mm wall segment -->
|
||||
<line x1="0" y1="0" x2="550" y2="0" stroke="#333" stroke-width="16" />
|
||||
<!-- Wall E: dashed door opening -->
|
||||
<line x1="550" y1="0" x2="1500" y2="0" stroke="#333" stroke-width="16" stroke-dasharray="40,25" />
|
||||
|
||||
<!-- Default line padding 60 -->
|
||||
<!-- ========== DIMENSIONS ========== -->
|
||||
<!-- Pattern: line at ±60 from wall, ticks ±25, text at ±120 flipped -->
|
||||
|
||||
<!-- Wall E: y=0, 1500mm -->
|
||||
<line x1="0" y1="calc(0 - 60)" x2="1500" y2="calc(0 - 60)" stroke="#555" stroke-width="4" />
|
||||
<line x1="0" y1="calc(0 - 60 - 25)" x2="0" y2="calc(0 - 60 - 25 + 50)" stroke="#555"
|
||||
<line x1="0" y1="calc(0 - 60 - 25)" x2="0" y2="calc(0 - 60 + 25)" stroke="#555" stroke-width="4" />
|
||||
<line x1="1500" y1="calc(0 - 60 - 25)" x2="1500" y2="calc(0 - 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="1500" y1="calc(0 - 60 - 25)" x2="1500" y2="calc(0 - 60 - 25 + 50)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
|
||||
<!-- Move in our coordinate then flip for text readable -->
|
||||
<!-- text half way and on y - 120 -->
|
||||
<g transform="translate(750, -120) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555">
|
||||
1500</text>
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555">E: 1500mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall A: y=2600, 2500mm -->
|
||||
<line x1="0" y1="calc(2600 + 60)" x2="2500" y2="calc(2600 + 60)" stroke="#555" stroke-width="4" />
|
||||
<line x1="0" y1="calc(2600 + 60 - 25)" x2="0" y2="calc(2600 + 60 - 25 + 50)" stroke="#555"
|
||||
<line x1="0" y1="calc(2600 + 60 - 25)" x2="0" y2="calc(2600 + 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="2500" y1="calc(2600 + 60 - 25)" x2="2500" y2="calc(2600 + 60 - 25 + 50)" stroke="#555"
|
||||
<line x1="2500" y1="calc(2600 + 60 - 25)" x2="2500" y2="calc(2600 + 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<!-- Move in our coordinate then flip for text readable -->
|
||||
<!-- text half way and on y + 120 -->
|
||||
<g transform="translate(1250, 2720) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555">
|
||||
2500</text>
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555">A: 2500mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall F: x=0, 2600mm -->
|
||||
<line x1="calc(0 - 60)" y1="0" x2="calc(0 - 60)" y2="2600" stroke="#555" stroke-width="4" />
|
||||
<line x1="calc(0 - 60 - 25)" y1="0" x2="calc(0 - 60 + 25)" y2="0" stroke="#555" stroke-width="4" />
|
||||
<line x1="calc(0 - 60 - 25)" y1="2600" x2="calc(0 - 60 + 25)" y2="2600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(-120, 1300) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555"
|
||||
transform="rotate(90)">F: 2600mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall B: x=2500, 1000mm (y=1600 to y=2600) -->
|
||||
<line x1="calc(2500 + 60)" y1="1600" x2="calc(2500 + 60)" y2="2600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="calc(2500 + 60 - 25)" y1="1600" x2="calc(2500 + 60 + 25)" y2="1600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="calc(2500 + 60 - 25)" y1="2600" x2="calc(2500 + 60 + 25)" y2="2600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(2620, 2100) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555"
|
||||
transform="rotate(-90)">B: 1000mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall C: y=1600, 1000mm (x=1500 to x=2500) -->
|
||||
<line x1="1500" y1="calc(1600 - 60)" x2="2500" y2="calc(1600 - 60)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="1500" y1="calc(1600 - 60 - 25)" x2="1500" y2="calc(1600 - 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="2500" y1="calc(1600 - 60 - 25)" x2="2500" y2="calc(1600 - 60 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(2000, 1480) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555">C: 1000mm</text>
|
||||
</g>
|
||||
|
||||
<!-- Wall D: x=1500, 1600mm (y=0 to y=1600) -->
|
||||
<line x1="calc(1500 + 60)" y1="0" x2="calc(1500 + 60)" y2="1600" stroke="#555" stroke-width="4" />
|
||||
<line x1="calc(1500 + 60 - 25)" y1="0" x2="calc(1500 + 60 + 25)" y2="0" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="calc(1500 + 60 - 25)" y1="1600" x2="calc(1500 + 60 + 25)" y2="1600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(1620, 800) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="48" fill="#555"
|
||||
transform="rotate(-90)">D: 1600mm</text>
|
||||
</g>
|
||||
|
||||
<!-- ========== FIXTURES ========== -->
|
||||
|
||||
<!-- Bath: 1850x850, corner A/F, long side along wall F -->
|
||||
<rect x="25" y="750" width="800" height="1825" rx="60" fill="none" stroke="#333"
|
||||
stroke-width="10" />
|
||||
<rect x="75" y="800" width="700" height="1725" rx="50" fill="#d4e8f7" fill-opacity="0.3"
|
||||
stroke="#999" stroke-width="5" />
|
||||
<!-- Faucet: middle of bath, wall F side -->
|
||||
<circle cx="40" cy="1675" r="30" fill="none" stroke="#4a90d9" stroke-width="7" />
|
||||
<circle cx="40" cy="1675" r="10" fill="#4a90d9" />
|
||||
<!-- Drain -->
|
||||
<circle cx="425" cy="875" r="25" fill="none" stroke="#999" stroke-width="5" />
|
||||
<g transform="translate(425, 1675) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="45" fill="#666">Bath</text>
|
||||
</g>
|
||||
<g transform="translate(425, 1620) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#666">1850x850</text>
|
||||
</g>
|
||||
|
||||
<!-- Suction cup baskets: wall F, between sink and bath -->
|
||||
<rect x="25" y="620" width="120" height="110" rx="8" fill="#aaa" fill-opacity="0.2"
|
||||
stroke="#999" stroke-width="4" stroke-dasharray="10,6" />
|
||||
<g transform="translate(200, 675) scale(1,-1)">
|
||||
<text text-anchor="start" dominant-baseline="central" font-size="30" fill="#999">TISKEN baskets</text>
|
||||
</g>
|
||||
|
||||
<!-- Shower: nook, x=1500-2500, y=1600-2600 -->
|
||||
<rect x="1500" y="1600" width="1000" height="1000" fill="#d4e8f7" fill-opacity="0.4"
|
||||
stroke="#333" stroke-width="10" stroke-dasharray="30,15" />
|
||||
<!-- Shower head: middle of wall B -->
|
||||
<circle cx="2475" cy="2100" r="60" fill="none" stroke="#4a90d9" stroke-width="7" />
|
||||
<circle cx="2475" cy="2100" r="20" fill="#4a90d9" />
|
||||
<!-- Drain -->
|
||||
<circle cx="2000" cy="2100" r="35" fill="none" stroke="#999" stroke-width="5" />
|
||||
<line x1="1980" y1="2100" x2="2020" y2="2100" stroke="#999" stroke-width="5" />
|
||||
<line x1="2000" y1="2080" x2="2000" y2="2120" stroke="#999" stroke-width="5" />
|
||||
<g transform="translate(2000, 2200) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="45" fill="#4a90d9">Shower</text>
|
||||
</g>
|
||||
<g transform="translate(2000, 2140) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#4a90d9">
|
||||
(~1000x1000)</text>
|
||||
</g>
|
||||
|
||||
<!-- Sink: 550x350, wall F, 50mm from wall E -->
|
||||
<rect x="25" y="50" width="350" height="550" rx="15" fill="none" stroke="#333"
|
||||
stroke-width="10" />
|
||||
<ellipse cx="200" cy="325" rx="80" ry="140" fill="none" stroke="#333" stroke-width="7" />
|
||||
<!-- Faucet -->
|
||||
<circle cx="60" cy="325" r="18" fill="none" stroke="#4a90d9" stroke-width="7" />
|
||||
<circle cx="60" cy="325" r="6" fill="#4a90d9" />
|
||||
<g transform="translate(200, 325) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="45" fill="#666">Sink</text>
|
||||
</g>
|
||||
<g transform="translate(200, 270) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="32" fill="#666">550x350</text>
|
||||
</g>
|
||||
|
||||
<!-- Shelf: wall A, 800mm long, 250mm deep, 500mm from wall F -->
|
||||
<rect x="500" y="calc(2600 - 250)" width="800" height="250" fill="#c8b896" fill-opacity="0.3"
|
||||
stroke="#999" stroke-width="5" />
|
||||
<g transform="translate(900, 2475) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="35" fill="#666">Shelf 800x250</text>
|
||||
</g>
|
||||
|
||||
<!-- Ceiling light: 1100 from wall F, 700 from wall A → (1100, 2600-700) = (1100, 1900), r=210 -->
|
||||
<circle cx="1100" cy="1900" r="210" fill="none" stroke="#f5a623" stroke-width="6"/>
|
||||
<line x1="1070" y1="1900" x2="1130" y2="1900" stroke="#f5a623" stroke-width="4"/>
|
||||
<line x1="1100" y1="1870" x2="1100" y2="1930" stroke="#f5a623" stroke-width="4"/>
|
||||
<g transform="translate(1100, 1830) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="35" fill="#f5a623">Light (420mm)</text>
|
||||
</g>
|
||||
|
||||
<!-- Vent: on wall D, centered on radiator (y=900) -->
|
||||
<rect x="1400" y="850" width="100" height="100" fill="none" stroke="#888" stroke-width="5" stroke-dasharray="15,8"/>
|
||||
<line x1="1400" y1="850" x2="1500" y2="950" stroke="#888" stroke-width="3"/>
|
||||
<line x1="1500" y1="850" x2="1400" y2="950" stroke="#888" stroke-width="3"/>
|
||||
<g transform="translate(1350, 900) scale(1,-1)">
|
||||
<text text-anchor="end" dominant-baseline="central" font-size="35" fill="#888">Vent</text>
|
||||
</g>
|
||||
|
||||
<!-- Radiator: wall D (x=1500), 600mm, 600mm from door -->
|
||||
<rect x="1425" y="600" width="75" height="600" fill="#e85d3a" fill-opacity="0.4"
|
||||
stroke="#e85d3a" stroke-width="7" />
|
||||
|
||||
<!-- Dimension: 600mm gap radiator to door on wall D -->
|
||||
<line x1="calc(1500 + 120)" y1="0" x2="calc(1500 + 120)" y2="600" stroke="#555" stroke-width="4" />
|
||||
<line x1="calc(1500 + 120 - 25)" y1="0" x2="calc(1500 + 120 + 25)" y2="0" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="calc(1500 + 120 - 25)" y1="600" x2="calc(1500 + 120 + 25)" y2="600" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(1680, 300) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="42" fill="#555"
|
||||
transform="rotate(-90)">600</text>
|
||||
</g>
|
||||
|
||||
<!-- Dimension: 550mm wall segment left of door -->
|
||||
<line x1="0" y1="calc(0 - 150)" x2="550" y2="calc(0 - 150)" stroke="#555" stroke-width="4" />
|
||||
<line x1="0" y1="calc(0 - 150 - 25)" x2="0" y2="calc(0 - 150 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<line x1="550" y1="calc(0 - 150 - 25)" x2="550" y2="calc(0 - 150 + 25)" stroke="#555"
|
||||
stroke-width="4" />
|
||||
<g transform="translate(275, -210) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="42" fill="#555">550</text>
|
||||
</g>
|
||||
|
||||
<!-- Scale bar -->
|
||||
<line x1="1700" y1="-200" x2="2700" y2="-200" stroke="#333" stroke-width="8" />
|
||||
<line x1="1700" y1="calc(-200 - 25)" x2="1700" y2="calc(-200 + 25)" stroke="#333"
|
||||
stroke-width="8" />
|
||||
<line x1="2200" y1="calc(-200 - 15)" x2="2200" y2="calc(-200 + 15)" stroke="#333"
|
||||
stroke-width="5" />
|
||||
<line x1="2700" y1="calc(-200 - 25)" x2="2700" y2="calc(-200 + 25)" stroke="#333"
|
||||
stroke-width="8" />
|
||||
<g transform="translate(1700, -260) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#333">0</text>
|
||||
</g>
|
||||
<g transform="translate(2200, -260) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#333">500</text>
|
||||
</g>
|
||||
<g transform="translate(2700, -260) scale(1,-1)">
|
||||
<text text-anchor="middle" dominant-baseline="central" font-size="38" fill="#333">1000mm</text>
|
||||
</g>
|
||||
|
||||
</g>
|
||||
|
||||
<!-- Legend (outside the flipped group, normal SVG coords) -->
|
||||
<g transform="translate(2650, 2400)">
|
||||
<text x="0" y="0" font-size="50" font-weight="bold" fill="#333">Legend</text>
|
||||
<line x1="0" y1="60" x2="80" y2="60" stroke="#333" stroke-width="14" />
|
||||
<text x="100" y="75" font-size="40" fill="#555">Wall</text>
|
||||
<line x1="0" y1="120" x2="80" y2="120" stroke="#333" stroke-width="8" stroke-dasharray="20,10" />
|
||||
<text x="100" y="135" font-size="40" fill="#555">Shower</text>
|
||||
<circle cx="40" cy="180" r="18" fill="#4a90d9" />
|
||||
<text x="100" y="195" font-size="40" fill="#555">Water</text>
|
||||
<rect x="0" y="225" width="80" height="40" fill="#e85d3a" fill-opacity="0.4" stroke="#e85d3a"
|
||||
stroke-width="4" />
|
||||
<text x="100" y="255" font-size="40" fill="#555">Radiator</text>
|
||||
<line x1="0" y1="300" x2="80" y2="300" stroke="#333" stroke-width="14" stroke-dasharray="20,12" />
|
||||
<text x="100" y="315" font-size="40" fill="#555">Door</text>
|
||||
<circle cx="40" cy="360" r="18" fill="none" stroke="#f5a623" stroke-width="4" />
|
||||
<text x="100" y="375" font-size="40" fill="#555">Light</text>
|
||||
<rect x="15" y="405" width="50" height="50" fill="none" stroke="#888" stroke-width="3" stroke-dasharray="8,5" />
|
||||
<line x1="15" y1="405" x2="65" y2="455" stroke="#888" stroke-width="2" />
|
||||
<line x1="65" y1="405" x2="15" y2="455" stroke="#888" stroke-width="2" />
|
||||
<text x="100" y="440" font-size="40" fill="#555">Vent</text>
|
||||
</g>
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 13 KiB |
@@ -1,160 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3700 3800" width="800" height="820" font-family="monospace" font-size="48">
|
||||
<!-- Background -->
|
||||
<rect width="3700" height="3800" fill="#f8f8f8"/>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="1850" y="80" text-anchor="middle" font-size="80" font-weight="bold" fill="#333">Bathroom Blueprint (DRAFT)</text>
|
||||
<text x="1850" y="140" text-anchor="middle" font-size="42" fill="#888">Coordinates in mm — F/E corner = (0,0) — Y increases upward</text>
|
||||
|
||||
<!-- Room in mm. Visual: A at top, F/E (origin) at bottom-left.
|
||||
SVG coords = (arch_x, 2600 - arch_y) so Y-up maps to SVG Y-down.
|
||||
Polygon (SVG): A(0,0) B(2500,0) C(2500,1000) D(1500,1000) E(1500,2600) F(0,2600)
|
||||
Arch coords: A(0,2600) B(2500,2600) C(2500,1600) D(1500,1600) E(1500,0) F(0,0)
|
||||
-->
|
||||
<g transform="translate(400, 350)">
|
||||
<!-- Room outline -->
|
||||
<polygon points="0,0 2500,0 2500,1000 1500,1000 1500,2600 0,2600"
|
||||
fill="white" stroke="#333" stroke-width="16" stroke-linejoin="miter"/>
|
||||
|
||||
<!-- === EDGE LABELS === -->
|
||||
<!-- Wall A: top (arch y=2600) -->
|
||||
<rect x="1210" y="-200" width="80" height="65" rx="10" fill="#e8e8e8" stroke="#999" stroke-width="3"/>
|
||||
<text x="1250" y="-150" text-anchor="middle" font-size="48" font-weight="bold" fill="#333">A</text>
|
||||
<!-- Wall B: right upper (arch x=2500) -->
|
||||
<rect x="2560" y="460" width="80" height="65" rx="10" fill="#e8e8e8" stroke="#999" stroke-width="3"/>
|
||||
<text x="2600" y="510" text-anchor="middle" font-size="48" font-weight="bold" fill="#333">B</text>
|
||||
<!-- Wall C: step horizontal (arch y=1600) -->
|
||||
<rect x="1960" y="1040" width="80" height="65" rx="10" fill="#e8e8e8" stroke="#999" stroke-width="3"/>
|
||||
<text x="2000" y="1090" text-anchor="middle" font-size="48" font-weight="bold" fill="#333">C</text>
|
||||
<!-- Wall D: right lower (arch x=1500) -->
|
||||
<rect x="1560" y="1760" width="80" height="65" rx="10" fill="#e8e8e8" stroke="#999" stroke-width="3"/>
|
||||
<text x="1600" y="1810" text-anchor="middle" font-size="48" font-weight="bold" fill="#333">D</text>
|
||||
<!-- Wall E: bottom / door (arch y=0) -->
|
||||
<rect x="710" y="2640" width="80" height="65" rx="10" fill="#e8e8e8" stroke="#999" stroke-width="3"/>
|
||||
<text x="750" y="2690" text-anchor="middle" font-size="48" font-weight="bold" fill="#333">E</text>
|
||||
<!-- Wall F: left (arch x=0) -->
|
||||
<rect x="-200" y="1260" width="80" height="65" rx="10" fill="#e8e8e8" stroke="#999" stroke-width="3"/>
|
||||
<text x="-160" y="1310" text-anchor="middle" font-size="48" font-weight="bold" fill="#333">F</text>
|
||||
|
||||
<!-- === DIMENSIONS === -->
|
||||
<!-- Wall A: 2500mm (top) -->
|
||||
<line x1="0" y1="-60" x2="2500" y2="-60" stroke="#555" stroke-width="4"/>
|
||||
<line x1="0" y1="-85" x2="0" y2="-35" stroke="#555" stroke-width="4"/>
|
||||
<line x1="2500" y1="-85" x2="2500" y2="-35" stroke="#555" stroke-width="4"/>
|
||||
<text x="600" y="-90" text-anchor="middle" font-size="48" fill="#555">2500</text>
|
||||
|
||||
<!-- Wall F: 2600mm (left) -->
|
||||
<line x1="-60" y1="0" x2="-60" y2="2600" stroke="#555" stroke-width="4"/>
|
||||
<line x1="-85" y1="0" x2="-35" y2="0" stroke="#555" stroke-width="4"/>
|
||||
<line x1="-85" y1="2600" x2="-35" y2="2600" stroke="#555" stroke-width="4"/>
|
||||
<text x="-100" y="700" text-anchor="middle" font-size="48" fill="#555" transform="rotate(-90, -100, 700)">2600</text>
|
||||
|
||||
<!-- Wall E: 1500mm (bottom) -->
|
||||
<line x1="0" y1="2720" x2="1500" y2="2720" stroke="#555" stroke-width="4"/>
|
||||
<line x1="0" y1="2695" x2="0" y2="2745" stroke="#555" stroke-width="4"/>
|
||||
<line x1="1500" y1="2695" x2="1500" y2="2745" stroke="#555" stroke-width="4"/>
|
||||
<text x="350" y="2800" text-anchor="middle" font-size="48" fill="#555">1500</text>
|
||||
|
||||
<!-- Wall B: 1000mm (right upper) -->
|
||||
<line x1="2660" y1="0" x2="2660" y2="1000" stroke="#555" stroke-width="4"/>
|
||||
<line x1="2635" y1="0" x2="2685" y2="0" stroke="#555" stroke-width="4"/>
|
||||
<line x1="2635" y1="1000" x2="2685" y2="1000" stroke="#555" stroke-width="4"/>
|
||||
<text x="2750" y="520" text-anchor="middle" font-size="48" fill="#555" transform="rotate(90, 2750, 520)">1000</text>
|
||||
|
||||
<!-- Wall C: 1000mm (step) -->
|
||||
<line x1="1500" y1="1120" x2="2500" y2="1120" stroke="#555" stroke-width="4"/>
|
||||
<line x1="1500" y1="1095" x2="1500" y2="1145" stroke="#555" stroke-width="4"/>
|
||||
<line x1="2500" y1="1095" x2="2500" y2="1145" stroke="#555" stroke-width="4"/>
|
||||
<text x="2000" y="1190" text-anchor="middle" font-size="48" fill="#555">1000</text>
|
||||
|
||||
<!-- Wall D: 1600mm (right lower) -->
|
||||
<line x1="1660" y1="1000" x2="1660" y2="2600" stroke="#555" stroke-width="4"/>
|
||||
<line x1="1635" y1="1000" x2="1685" y2="1000" stroke="#555" stroke-width="4"/>
|
||||
<line x1="1635" y1="2600" x2="1685" y2="2600" stroke="#555" stroke-width="4"/>
|
||||
<text x="1750" y="1500" text-anchor="middle" font-size="48" fill="#555" transform="rotate(90, 1750, 1500)">1600</text>
|
||||
|
||||
<!-- === BATH (top-left corner, 1850x850, long side along wall F) === -->
|
||||
<!-- SVG: (25, 25) to (875, 1875) -->
|
||||
<g>
|
||||
<rect x="25" y="25" width="850" height="1850" rx="60" fill="none" stroke="#333" stroke-width="10"/>
|
||||
<rect x="75" y="75" width="750" height="1750" rx="50" fill="#d4e8f7" fill-opacity="0.3" stroke="#999" stroke-width="5"/>
|
||||
<!-- Faucet (middle of bath, wall F side) -->
|
||||
<circle cx="40" cy="950" r="30" fill="none" stroke="#4a90d9" stroke-width="7"/>
|
||||
<circle cx="40" cy="950" r="10" fill="#4a90d9"/>
|
||||
<!-- Drain -->
|
||||
<circle cx="425" cy="1700" r="25" fill="none" stroke="#999" stroke-width="5"/>
|
||||
<text x="425" y="930" text-anchor="middle" font-size="45" fill="#666">Bath</text>
|
||||
<text x="425" y="990" text-anchor="middle" font-size="38" fill="#666">1850x850</text>
|
||||
</g>
|
||||
|
||||
<!-- === SHOWER (top-right nook, ~1000x1000) === -->
|
||||
<rect x="1500" y="0" width="1000" height="1000" fill="#d4e8f7" fill-opacity="0.4"
|
||||
stroke="#333" stroke-width="10" stroke-dasharray="30,15"/>
|
||||
<!-- Shower head (middle of wall B) -->
|
||||
<circle cx="2475" cy="500" r="60" fill="none" stroke="#4a90d9" stroke-width="7"/>
|
||||
<circle cx="2475" cy="500" r="20" fill="#4a90d9"/>
|
||||
<!-- Drain -->
|
||||
<circle cx="2000" cy="500" r="35" fill="none" stroke="#999" stroke-width="5"/>
|
||||
<line x1="1980" y1="500" x2="2020" y2="500" stroke="#999" stroke-width="5"/>
|
||||
<line x1="2000" y1="480" x2="2000" y2="520" stroke="#999" stroke-width="5"/>
|
||||
<text x="2000" y="600" text-anchor="middle" font-size="45" fill="#4a90d9">Shower</text>
|
||||
<text x="2000" y="660" text-anchor="middle" font-size="38" fill="#4a90d9">(~1000x1000)</text>
|
||||
|
||||
<!-- === SINK / VANITY (wall F, between bath and bottom/door edge) === -->
|
||||
<!-- SVG: (25, 2025) to (525, 2475) -->
|
||||
<g>
|
||||
<rect x="25" y="2025" width="500" height="450" rx="15" fill="none" stroke="#333" stroke-width="10"/>
|
||||
<ellipse cx="275" cy="2210" rx="90" ry="130" fill="none" stroke="#333" stroke-width="7"/>
|
||||
<!-- Faucet -->
|
||||
<circle cx="100" cy="2210" r="18" fill="none" stroke="#4a90d9" stroke-width="7"/>
|
||||
<circle cx="100" cy="2210" r="6" fill="#4a90d9"/>
|
||||
<text x="275" y="2550" text-anchor="middle" font-size="45" fill="#666">Sink</text>
|
||||
</g>
|
||||
|
||||
<!-- === RADIATOR (wall D, 600mm, 600mm from door) === -->
|
||||
<!-- SVG: x=1425, y=1400 to y=2000, width=75 -->
|
||||
<rect x="1425" y="1400" width="75" height="600" fill="#e85d3a" fill-opacity="0.4" stroke="#e85d3a" stroke-width="7"/>
|
||||
|
||||
<!-- Dimension: 600mm gap between radiator and door on wall D -->
|
||||
<line x1="1580" y1="2000" x2="1580" y2="2600" stroke="#555" stroke-width="4"/>
|
||||
<line x1="1555" y1="2000" x2="1605" y2="2000" stroke="#555" stroke-width="4"/>
|
||||
<line x1="1555" y1="2600" x2="1605" y2="2600" stroke="#555" stroke-width="4"/>
|
||||
<text x="1620" y="2310" text-anchor="middle" font-size="42" fill="#555" transform="rotate(90, 1620, 2310)">600</text>
|
||||
|
||||
<!-- === DOOR (wall E, right side, dotted line) === -->
|
||||
<!-- 550mm wall from F corner, then door opening -->
|
||||
<line x1="550" y1="2600" x2="1500" y2="2600" stroke="#333" stroke-width="14" stroke-dasharray="40,25"/>
|
||||
|
||||
<!-- Dimension: 550mm wall left of door -->
|
||||
<line x1="0" y1="2850" x2="550" y2="2850" stroke="#555" stroke-width="4"/>
|
||||
<line x1="0" y1="2825" x2="0" y2="2875" stroke="#555" stroke-width="4"/>
|
||||
<line x1="550" y1="2825" x2="550" y2="2875" stroke="#555" stroke-width="4"/>
|
||||
<text x="275" y="2940" text-anchor="middle" font-size="42" fill="#555">550</text>
|
||||
|
||||
<!-- Scale bar (bottom right) -->
|
||||
<g transform="translate(1700, 2850)">
|
||||
<line x1="0" y1="0" x2="1000" y2="0" stroke="#333" stroke-width="8"/>
|
||||
<line x1="0" y1="-25" x2="0" y2="25" stroke="#333" stroke-width="8"/>
|
||||
<line x1="500" y1="-15" x2="500" y2="15" stroke="#333" stroke-width="5"/>
|
||||
<line x1="1000" y1="-25" x2="1000" y2="25" stroke="#333" stroke-width="8"/>
|
||||
<text x="0" y="65" text-anchor="middle" font-size="38" fill="#333">0</text>
|
||||
<text x="500" y="65" text-anchor="middle" font-size="38" fill="#333">500</text>
|
||||
<text x="1000" y="65" text-anchor="middle" font-size="38" fill="#333">1000mm</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- Legend -->
|
||||
<g transform="translate(3250, 400)">
|
||||
<text x="0" y="0" font-size="50" font-weight="bold" fill="#333">Legend</text>
|
||||
<line x1="0" y1="60" x2="80" y2="60" stroke="#333" stroke-width="14"/>
|
||||
<text x="100" y="75" font-size="40" fill="#555">Wall</text>
|
||||
<line x1="0" y1="120" x2="80" y2="120" stroke="#333" stroke-width="8" stroke-dasharray="20,10"/>
|
||||
<text x="100" y="135" font-size="40" fill="#555">Shower</text>
|
||||
<circle cx="40" cy="180" r="18" fill="#4a90d9"/>
|
||||
<text x="100" y="195" font-size="40" fill="#555">Water</text>
|
||||
<rect x="0" y="225" width="80" height="40" fill="#e85d3a" fill-opacity="0.4" stroke="#e85d3a" stroke-width="4"/>
|
||||
<text x="100" y="255" font-size="40" fill="#555">Radiator</text>
|
||||
<line x1="0" y1="300" x2="80" y2="300" stroke="#333" stroke-width="14" stroke-dasharray="20,12"/>
|
||||
<text x="100" y="315" font-size="40" fill="#555">Door</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.9 KiB |
@@ -9,18 +9,24 @@
|
||||
|
||||
Describe what the bathroom looks like now: dimensions, fixtures, materials, condition.
|
||||
|
||||
- **Dimensions:** _TODO (L x W in cm/m)_
|
||||
- **Ceiling height:** _TODO_
|
||||
- **Dimensions:** L-shaped, see blueprint. Long edge (F) 2600mm, top (A) 2500mm, bottom (E) 1500mm, nook 1000x1000mm
|
||||
- **Ceiling height:** 2400mm
|
||||
- **Current flooring:** _TODO_
|
||||
- **Current wall finish:** _TODO_
|
||||
- **Fixtures:**
|
||||
- Toilet: _TODO (type, condition)_
|
||||
- Sink/vanity: _TODO_
|
||||
- Shower / bathtub: _TODO_
|
||||
- Mirror/cabinet: _TODO_
|
||||
- **Plumbing location:** _TODO (which wall carries the supply/drain lines)_
|
||||
- **Ventilation:** _TODO (extractor fan?)_
|
||||
- **Electrical:** _TODO (outlets, lighting, heated floor)_
|
||||
- Sink/vanity: 550x350mm on wall F, 50mm from wall E (between bath and door)
|
||||
- Shower: ~1000x1000 nook (top-right corner), water point middle of wall B
|
||||
- Bathtub (current): 1850x850, upper-left corner along wall F, water point middle of bath on wall F
|
||||
- Bathtub (planned): freestanding corner bath ~1800x800 (no brick surround)
|
||||
- Mirror: large mirror with diffuse ring light (keeping)
|
||||
- Shelf: wall A, 800mm long, 250mm deep, 500mm from wall F — want to keep something similar here (visual break, not necessarily storage)
|
||||
- Sink-side storage: two [IKEA TISKEN suction cup baskets](https://www.ikea.com/nl/nl/p/tisken-mand-met-zuignap-zwart-90498528/) on wall F next to sink — functional but need a nicer replacement
|
||||
- **Plumbing location:** shower water on wall B, bath water on wall F
|
||||
- **Ventilation:** vent on wall D (centered on radiator, no window). Connected to whole-house mechanical ventilation — single motor just behind the opening. Currently always open, causing heat loss.
|
||||
- **Electrical:**
|
||||
- Ceiling: [Philips Hue Devere](https://www.philips-hue.com/nl-nl/p/hue-white-ambiance-devere-grote-plafondlamp/4116631P6#specifications) — 420mm, 1100mm from wall F, 700mm from wall A (keeping)
|
||||
- Mirror: [Philips Hue Adore](https://www.philips-hue.com/nl-nl/p/hue-white-ambiance-adore-badkamerspiegel-met-verlichting/8719514340992) — bathroom mirror with integrated light (keeping)
|
||||
- **Heating:** towel rail radiator on wall D, 600mm wide, 600mm from door — needs replacing. Tado smart heating system with pre-heat scheduling.
|
||||
|
||||
---
|
||||
|
||||
@@ -28,16 +34,20 @@ Describe what the bathroom looks like now: dimensions, fixtures, materials, cond
|
||||
|
||||
What should the new bathroom achieve?
|
||||
|
||||
- [ ] _TODO — e.g., walk-in shower instead of bathtub_
|
||||
- [ ] _TODO — e.g., double sink_
|
||||
- [ ] _TODO — e.g., heated floor_
|
||||
- [ ] _TODO — e.g., specific style/aesthetic_
|
||||
- [x] Keep the bathtub — replacing with a freestanding corner bath (~1800x800, no brick surround)
|
||||
- [x] Keep the shower in the existing nook
|
||||
- [x] No toilet (no room, not needed)
|
||||
- [ ] _TODO — style/aesthetic direction_
|
||||
|
||||
---
|
||||
|
||||
## Blueprint
|
||||
|
||||
![[Bathroom Blueprint.svg]]
|
||||
### Current
|
||||
![[Bathroom Blueprint copy.svg]]
|
||||
|
||||
### Future
|
||||
![[Bathroom Blueprint Future.svg]]
|
||||
|
||||
---
|
||||
|
||||
@@ -48,7 +58,7 @@ What should the new bathroom achieve?
|
||||
| Floor tiles | | | |
|
||||
| Wall tiles | | | |
|
||||
| Shower screen | | | |
|
||||
| Toilet | | | |
|
||||
| Bathtub (freestanding) | | | |
|
||||
| Sink / vanity | | | |
|
||||
| Faucets | | | |
|
||||
| Mirror / cabinet | | | |
|
||||
@@ -96,6 +106,99 @@ What should the new bathroom achieve?
|
||||
|
||||
---
|
||||
|
||||
## Things to Think About
|
||||
|
||||
### Ventilation — Upgrade the Vent Grille
|
||||
- The bathroom connects to a whole-house mechanical ventilation system (single motor behind the vent opening on wall D). There is no separate bathroom fan — the central system provides extraction.
|
||||
- **Problem:** The vent is always open, which means continuous heat loss and unnecessary suction when the bathroom is dry. The motor runs regardless.
|
||||
- **Solution: humidity-sensitive vent grille.** These exist and work without electricity — a polyamide strip inside the grille expands/contracts with moisture, mechanically opening/closing the shutter. When humidity rises (shower, bath), the grille opens fully. When the room is dry, it closes to a minimum, reducing heat loss and balancing airflow across the house.
|
||||
- **Options:**
|
||||
- **[Aereco EHT²](https://www.aereco.com/products/air-inlets/eht2/)** — wall-mounted humidity-sensitive inlet, fully mechanical (no power), up to 52 dB acoustic insulation. Designed for exactly this use case: existing mechanical ventilation with passive grille replacement. This is the most directly applicable product.
|
||||
- **[Aereco humidity-sensitive exhaust grilles](https://www.aereco.com/product-control/humidity-sensitive/)** — if the vent is on the extraction side (which it is), Aereco also makes extraction-side grilles that modulate airflow based on room humidity.
|
||||
- **Electronic alternative:** A humidity sensor switch (e.g. Topgreener TDHS5, Lutron Maestro MS-HS3) could control a motorised damper, but this adds wiring complexity. The passive Aereco approach is simpler for a central system.
|
||||
- **During renovation:** This is the ideal time to swap the grille. The duct behind it is already there. Just measure the duct diameter/opening size and match an Aereco or equivalent product to it.
|
||||
|
||||
### Lighting
|
||||
- Both lights are Philips Hue White Ambiance — tuneable colour temperature (2200-6500K) and dimmable via the Hue app or automation. No hardware dimmer needed.
|
||||
- The Devere (IP44) covers ambient, the Adore handles task lighting at the mirror. That covers all essential layers.
|
||||
- If adding anything, a small accent (LED strip in a shower niche) is the only gap. Not essential.
|
||||
|
||||
### Waterproofing — Do Not Cut Corners
|
||||
- The entire shower area and bath surround must be tanked (liquid membrane or sheet membrane) before tiling. This is non-negotiable.
|
||||
- Extend waterproofing at least 150mm beyond the shower/bath edges. Many professionals recommend tanking the full wet wall floor-to-ceiling.
|
||||
- The floor should be fully waterproofed, especially at the bath and shower zones.
|
||||
- Use flexible waterproof tape on all inside corners and pipe penetrations.
|
||||
- Get this inspected before tiling — you cannot fix it later without ripping tiles off.
|
||||
|
||||
### The L-Shape: Use It
|
||||
- The nook (1000x1000) is a natural shower enclosure. A single glass panel or frameless screen is all you need — the walls do the rest.
|
||||
- The L-shape creates a natural separation between wet zone (shower/bath side) and dry zone (sink/door side). Lean into that.
|
||||
- Consider where the towel rail goes — the wall between the sink and the door (wall E, 550mm segment) or the inside of wall D above the radiator.
|
||||
|
||||
### Style Directions Worth Exploring
|
||||
- **Warm spa:** matte stone-look porcelain, oak or walnut vanity, brushed nickel, soft mirror lighting, muted green or clay accents.
|
||||
- **Quiet hotel:** seamless tile palette, floating vanity, frameless shower glass, minimal grout contrast, concealed storage.
|
||||
- **Vintage modern:** characterful floor tile, more furniture-like vanity, framed mirror, decorative sconces, warmer metal finishes.
|
||||
|
||||
### Plumbing: Keep It Where It Is
|
||||
- Moving drain lines is expensive and disruptive (especially in concrete floors). If the current drain positions work, keep them.
|
||||
- Moving supply lines (hot/cold) is much cheaper than moving drains. Adjusting tap positions on the same wall is usually straightforward.
|
||||
- If replacing the bath, confirm the new one fits the same drain position or plan a short drain extension.
|
||||
|
||||
### Heated Floor — Probably Not
|
||||
- At 2400mm ceiling height, adding underfloor heating raises the floor ~15-20mm (mat + adhesive + tile build-up vs direct tile). That eats into an already low ceiling.
|
||||
- With Tado you can pre-heat the room via the towel radiator on a schedule, which largely solves the cold-floor-in-the-morning problem.
|
||||
- A good towel rail radiator replacement gives you warm towels and room heating in one. Prioritise that over underfloor heating.
|
||||
- If you still want warm feet, a small electric bath mat is a zero-build-up alternative.
|
||||
|
||||
### Tile Choices
|
||||
- Large format tiles (600x600 or larger) with thin grout lines make a small room feel bigger. Fewer grout lines also means less cleaning.
|
||||
- Light colours reflect light and help compensate for the lack of a window. Dark feature walls can work but keep them to one wall max.
|
||||
- Consider the same tile on floor and walls (or floor and lower walls) for a seamless look that visually expands the space.
|
||||
- Non-slip rating matters, especially for the shower floor. Look for R10 or R11 rated tiles in the wet zone.
|
||||
|
||||
### Storage
|
||||
- In a small bathroom, surface clutter kills the feel fast. Plan recessed niches in the shower wall during the build — much cheaper than retrofitting and they do not eat floor space.
|
||||
- A mirrored cabinet above the sink gives storage and a mirror in one.
|
||||
- If the vanity is wall-mounted (floating), the visible floor underneath makes the room feel larger.
|
||||
- **Wall A shelf (existing: 800x250mm, 500mm from wall F):** The current shelf breaks up the long wall nicely. Consider replacing with a similar floating shelf in a material that matches the new design (e.g. solid oak, stone-look composite, or a tiled niche built into the wall). It does not need to be deep — 150–250mm is enough for candles, a plant, or decorative objects.
|
||||
- **Sink-side storage (replacing TISKEN baskets):** Options that look better than suction cup baskets:
|
||||
- Wall-mounted wire or metal basket shelf (e.g. matte black steel) — screwed in, not suction
|
||||
- Small floating shelf or pair of shelves next to the mirror
|
||||
- If the vanity has drawers, move most items inside and keep the wall clean
|
||||
- A recessed niche in wall F next to the sink (decide during tiling phase — cannot add later)
|
||||
|
||||
### Light Switch: Need a Physical Switch with Smart Control
|
||||
- The Hue lights are smart-controlled, but a physical wall switch is still needed (guests, muscle memory, building codes in some areas).
|
||||
- If someone flips a dumb switch and cuts power, the Hue bulbs go offline. A smart switch solves this.
|
||||
- **Options compatible with Philips Hue:**
|
||||
- **Philips Hue Wall Switch Module** — installs behind your existing switch plate. The physical switch stays but toggles a Hue scene instead of cutting power. Easiest drop-in solution. ~€40.
|
||||
- **RunLessWire Click for Philips Hue** — wireless, battery-free (kinetic energy). Pairs natively with the Hue Bridge. Can be placed anywhere, no wiring. ~€35–50.
|
||||
- **Friends of Hue switches (Senic / Gira)** — built-in wall switches using Zigbee Green Power (no battery). Premium look, proper wall-plate form factor. Pair directly with Hue Bridge. €50–100+ depending on brand/finish.
|
||||
- **Inovelli Blue Series** — Zigbee 3.0 in-wall switch with built-in humidity sensor (useful for a windowless bathroom). Does **not** pair directly with Hue Bridge; requires SmartThings or Home Assistant as a bridge. More complex but more capable. ~$50.
|
||||
- **Recommendation:** The Hue Wall Switch Module is the simplest if you already have a switch plate. If you want a clean wireless option with no wiring at all, the RunLessWire Click is worth considering.
|
||||
|
||||
### Radiator Replacement
|
||||
- The existing towel rail radiator on wall D needs replacing. Same position works (vent is above it, plumbing connections are there).
|
||||
- Size the replacement to the available space: 600mm wide, fitting between the vent above and the 600mm gap to the door below.
|
||||
- Consider a vertical towel rail if you want more hanging space — a taller, narrower unit could work if the vent position allows it.
|
||||
- With Tado controlling the schedule, the radiator does double duty: room pre-heating and towel warming.
|
||||
|
||||
### Common Mistakes to Avoid
|
||||
- Not budgeting for contingency (15% minimum). There are always surprises behind old tiles.
|
||||
- Choosing fixtures before confirming they physically fit. Measure clearances: 200mm minimum from sink centre to side wall, 600mm clear in front of any fixture.
|
||||
- Forgetting about the door swing — yours opens outward (good), so no conflict, but check nothing blocks it from the corridor side.
|
||||
- Skipping a site visit with your plumber before demolition. Let them see the existing setup and flag issues.
|
||||
- Over-specifying trendy finishes that date quickly. Neutral base, personality through accessories.
|
||||
|
||||
### If I Were Optimizing This Layout
|
||||
- Keep the shower in the existing nook unless plumbing constraints make it painful. That part of the plan is already doing useful work.
|
||||
- Use a wall-hung vanity with drawers rather than a freestanding cabinet. In a room this size, visible floor area helps.
|
||||
- Make the freestanding bath feel deliberate: consider a ledge or niche nearby, proper bath filler position, and enough surrounding calm that it reads as an asset rather than leftover compromise.
|
||||
- Reduce the number of finish changes. A smaller room usually benefits from calm surfaces more than from visual variety.
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
-
|
||||
@@ -104,6 +207,30 @@ What should the new bathroom achieve?
|
||||
|
||||
## Reference / Inspiration
|
||||
|
||||
Links, photos, or ideas collected.
|
||||
### Current Sources Worth Trusting
|
||||
- [2025 U.S. Houzz Bathroom Trends Study](https://www.houzz.com/magazine/2025-u-s-houzz-bathroom-trends-study-stsetivw-vs~183227801)
|
||||
- [NKBA 2026 Bath Trends Report announcement](https://nkba.org/press/nkba-kbis-releases-annual-2026-bath-trends-report/)
|
||||
- [Home Ventilating Institute bathroom ventilation guidance](https://www.hvi.org/resources/publications/bathroom-ventilation/)
|
||||
- [Tile Council of North America slip classification overview](https://tcnatile.com/national-standard-ansi-a326-3-now-requires-hard-surface-flooring-manufacturers-to-provide-product-use-classifications-based-on-their-slip-resistance-properties/)
|
||||
|
||||
-
|
||||
### Trends & Ideas (2025-2026)
|
||||
- [Bathroom Trends 2026: What's In, What's Out — Decorilla](https://www.decorilla.com/online-decorating/bathroom-trends-2026/)
|
||||
- [25 Bathroom Renovation Ideas for 2026 — The Coolist](https://www.thecoolist.com/bathroom-renovation-ideas-for-2026/)
|
||||
- [10 Inspiring Bathroom Renovation Ideas for 2026 — Decor8 AI](https://blog.decor8.ai/post/10-inspiring-bathroom-renovation-ideas-for-your-2026-project)
|
||||
- [Small Bathroom Layouts: Space-Smart Plans — Horow](https://horow.com/blogs/guide/small-bathroom-layouts-space-smart-plans)
|
||||
|
||||
### Mistakes to Avoid
|
||||
- [Bathroom Renovation Regrets — Emily Henderson](https://stylebyemilyhenderson.com/bathroom-renovation-mistakes-and-tips)
|
||||
- [10 Common Bathroom Remodel Mistakes — Tile Club](https://www.tileclub.com/blogs/news/10-common-bathroom-remodel-mistakes-and-how-to-avoid-them)
|
||||
- [14 Bathroom Remodel Mistakes to Avoid — Home Art Tile](https://homearttile.com/bathroom-remodeling-mistakes-to-avoid/)
|
||||
- [Common Bathroom Remodel Mistakes — Sweeten](https://sweeten.com/blog/home-renovation-process/common-bathroom-remodel-mistakes-avoid/)
|
||||
|
||||
### Shower + Bath Combos
|
||||
- [Walk-in Shower with Tub Inside — Empava](https://empava.com/blogs/new/bathtub-inside-walk-in-shower-layout-and-design-ideas)
|
||||
- [Walk-in Shower Ideas for Small Bathrooms — Mobility Plus](https://www.mobility-plus.co.uk/blog/inspiration/walk-in-shower-layouts-small-bathrooms/)
|
||||
- [Small Tub/Shower Combo Ideas — Houzz](https://www.houzz.com/photos/small-tub-shower-combo-ideas-phbr2-bp~t_712~a_24-136--30-231)
|
||||
|
||||
### Budget & Planning
|
||||
- [Bathroom Remodel Tips for 2026 — Block Renovation](https://www.blockrenovation.com/guides/bathroom-remodel-tips-for-2026)
|
||||
- [Small Bathroom Remodel Costs 2026 — Badeloft](https://www.badeloftusa.com/buying-guides/small-bathroom-remodel-costs/)
|
||||
- [Renovating Small Bathroom on a Budget — Half Price Baths](https://www.halfpricebaths.com/renovating-small-bathroom-on-a-budget-choosing-the-right-materials/)
|
||||
|
||||
Reference in New Issue
Block a user