The right time to book, without checking every day.
Travellers who already know which hotel they want do not need to track the price themselves. tripmonitor monitors it automatically, shows the price history and sends an email when their target price is reached.
02Positioning
A price alert for your chosen hotel.
02.1Category
tripmonitor starts where the hotel search ends. Instead of presenting new options, it tracks the selected hotel's price over time.
02.2Differentiation
One selected hotel instead of a list of alternatives.
A target price set by the traveller.
Current prices and a visible price history.
When to book, not where to book.
03Audience
For travellers with a specific hotel in mind.
03.1Who it is for
Travellers in the DACH market who have already chosen their hotel and travel dates and want to follow price changes before booking.
03.2Usage context
The hotel and travel dates are fixed.
The traveller has set a target price.
The booking has not yet been made.
03.3Market
Primary: Germany
Secondary: Austria, Switzerland
Language: German
04Brand Identity
Visual design and product language.
The logo and wordmark define the visual identity. The language style defines how tripmonitor communicates in the product.
tripmonitor
Monogram · formed from t and m
Logo & use
ViewBox 64 × 64, stroke width 16, rounded caps
Coral #fe6038 or currentColor on dark backgrounds
Wordmark tripmonitor, always lowercase
04.1Language style
Calm
Direct and restrained. Information comes first.
Transparent
Prices and histories make changes easy to follow.
Precise
Short sentences and clear labels.
04.2UI copy rules
Interactive icons have an accessible name.
Error messages state what happened and what to do next.
Requirements and limits appear where they matter.
Use active verbs and short sentences.
Buttons name the next action.
Keep headings short and specific.
Address users directly.
Search question
Which hotel do you want to monitor?
Price alert CTA
Set price alert
Confirmation
Your price alert is active. We will email you when your target price is reached.
Email subject
Your target price has been reached.
05Design System
Tokens, components and states.
–
Colour tokens
–
Type scale steps
–
Component states
–
System sections
05.1Structural colours · 11 tokens
ink
#1a1613
ink-soft
#4b5563
steel
#6b7280
steel-light
#9ca3af
hairline-strong
#d8d3c8
hairline
#e5e7eb
ivory
#f3f4f6
offwhite
#f9fafb
white
#ffffff
surface-dark
#111827
surface-dark-soft
#374151
05.2Brand · Coral
coral
#fe6038 · CTA
coral-pressed
#e5553a · :active
coral-soft
#fff1ec · hover
coral-ring
#ffd9cc · focus
05.3Status colours · text, background and soft variants
Drawn inside the segment, cannot be clipped or cross a divider
Focus surface
offwhite
Lifts the active segment out of the white bar
Focus radius
radius-lg 8 px
Level with the container, because rounded-lg is 8 px in this project
Divider
hairline as a 1 px gap
Sits correctly on every row, including a wrapped one
Segment floor
168 px, then the bar wraps
Longest label plus padding; values are never truncated
Hit area
whole segment, minimum 44 px
Label and padding become part of the target
Price alert statuses
Monitoringinfo · #175cd3
Target price reachedsuccess · #067647
Pausedsteel · #6b7280
Price alert cards
Strandhotel · AdriaMonitoring
€1,148Target price €1,120
€28 above your target price.
Alpenlodge · TirolTarget price reached
€1,090Target price €1,100
Target price reached. Email sent.
City Suites · WienPaused
€890Target price €850
Price monitoring is paused.
05.12Motion
Token
Value
Role
dur-fast
120 ms
Colour, hover feedback
dur
200 ms
State change, badge swap
dur-slow
320 ms
Sheet and popover entrance
dur-chart
640 ms
Chart reveal
ease-standard
0.2, 0, 0, 1
Most transitions
ease-out
0.16, 1, 0.3, 1
Entrance animations
Hover lift
200 ms · ease-standard
Sheet entrance
320 ms · ease-out
Chart reveal
640 ms · ease-out
06aMockups · Product
From hotel search to price alert.
Every surface below is a real rendering built from the tokens in this document. Where a surface already exists in the product, the rendering follows it. Where it is new, the problem it solves is named underneath.