# The WRPS component kit The house style for this project's displays. AOG is the **reference** for how a component is parameterised — it is not used directly, and only the components this project needs exist. Applies to this display and every future display in the project. A new requirement adds a component here; it never adds a second style. ## Tokens Named like AOG's `AOG_C*` so they map onto CI Server global parameters. A restyle is an edit to this table and nothing else. | Token | Value | Use | |---|---|---| | `WRPS_CBG` | `#EDF0F4` | display ground | | `WRPS_CSF` | `#FFFFFF` | panel / surface | | `WRPS_CSF2` | `#F5F8FB` | recessed surface, inside a value box | | `WRPS_CBD` | `#C3CCD8` | border — heavier than a desktop design, for distance | | `WRPS_CBD2` | `#DFE5EC` | hairline, internal dividers | | `WRPS_CT1` | `#0E1621` | primary ink | | `WRPS_CT2` | `#465468` | labels, secondary ink | | `WRPS_CAC` | `#0B7DA8` | **interaction only** — selected, focus, faceplate rule | | `WRPS_CAC2` | `#12A5D9` | accent bright — focus ring | | `WRPS_CRUN` / bg | `#0F8A45` / `#E4F6EA` | running / on | | `WRPS_CWRN` / bg | `#A85B00` / `#FFEFD2` | attention | | `WRPS_CALM` / border | `#D32029` / `#96131A` | **alarm — always a filled block** | | `WRPS_CPRC` | `#2B3F52` | pipe and vessel outline | | `WRPS_CWTR` | `#9FCFE6` | liquid fill | **Colour policy.** The plant is drawn in ink on white. Cyan means *you can act on this*; green, amber and red mean *the plant is telling you something*. Nothing else is coloured, so an abnormal state is the only colour on the screen. **Abnormal is a filled block, never coloured text.** At distance, red text on white reads as slightly darker grey; a filled red block with white text does not. One fault propagates to every place it is relevant — banner, symbol, instrument bubble, value box, faceplate badge — so it cannot be missed from any part of the screen. **Type.** Labels **Segoe UI**, values and tag names **Consolas**. Both ship with Windows, so nothing depends on a font that might not be installed — but Segoe is the modern face and Tahoma is what dates a screen. Consolas is monospaced, so digits keep their column as values update at 100 ms, and using it for tag names gives the display its technical read. **Sized for a TV.** Nothing on the display is smaller than ~1.35% of screen height (about 15 px at 1080p); the wet well level is the largest thing at 4.6%, because it is the number a room actually watches. Ink is near-black on white and borders are heavier than a desktop design would use — contrast is what survives a bright room and a projector. **Why it does not look like AOG.** What dates AOG is the bevelled 3D artwork and mid-grey ground, not the grey itself. This kit is flat, square-cornered, hairline bordered, white on cool neutral. ## Components Every one takes the AOG-shaped parameter set where it applies: `item`, `setPointItem`, `tagName`, `format`, `showAlarmIndicator`, `selectable`, `displayToActivate`. | Component | Purpose | Key parameters | States | |---|---|---|---| | `WRPS_Display` | The 16:9 shell: ground, title bar, body, simulation band | — | — | | `WRPS_Title` | Display header — name, drawing ref, station states right | `title`, `subtitle` | — | | `WRPS_Panel` | Every framed region. Panels never nest | `header` | — | | `WRPS_Value` | **Every** analog value | `item`, `tagName`, `format`, `units`, `size`, `displayToActivate` | normal · large · warn · alarm | | `WRPS_State` | **Every** discrete status | `item`, `onText`, `offText`, `inverse`, `severity` | off · on · warn · alarm | | `WRPS_Button` | **Every** command and mode selection | `label`, `item`, `writeValue`, `pressed`, `variant` | normal · pressed · destructive | | `WRPS_Pump` | Pump symbol, circle with impeller cross | `item`, `tagName`, `displayToActivate` | stopped · running · tripped | | `WRPS_Valve` | Swing check and manual isolation, from the P&ID legend | `kind` | static | | `WRPS_Instrument` | ISA bubble, function letters over loop number | `letters`, `loop`, `item` | static · with value | | `WRPS_Vessel` | Wet well: outline, liquid fill, setpoint ladder at true heights | `levelItem`, `setpointItems`, `range` | — | | `WRPS_Faceplate` | Popup display frame — cyan rule, kit components inside | `title`, `subtitle`, `item` | — | | `WRPS_AlarmBanner` | Present **only** when something is abnormal; pushes the display down | `alarmList`, `count` | hidden · active · acknowledged | `WRPS_SimBand` is **not** another component: it is `WRPS_Button` and `WRPS_Value` inside a fenced region with a cyan rule and a standing label, so the simulation controls can never be mistaken for plant control. ## Rules 1. **No hand-drawn values or buttons.** If it shows a number it is `WRPS_Value`; if it is clickable it is `WRPS_Button`. This is what stops displays drifting. 2. **Faceplates are separate displays** opened via `displayToActivate`, matching how AOG works — not overlay groups on the parent display. 3. **Setpoint edits go through a numeric entry popup**, not an inline field. 4. **State is never colour alone.** `WRPS_State` carries a square marker and its own text, so it survives a projector or a colour-blind operator. 5. **Simulation controls stay in the band.** They never appear beside plant controls. 6. **An abnormal condition propagates everywhere it is relevant** — banner, plant symbol, instrument bubble, value box, faceplate badge. One fault, five places. 7. **Blink is reserved for unacknowledged alarms**, and only on the tag name, not whole regions. CI Server supports this natively (`blinkEnabled`, `blinkDelay`, 700 ms in the reference screens). 8. **Green is only for genuinely-running equipment.** If normal operation is colourful, red has competition and stops being an alarm. ## Geometry 16:9. Laid out on the editor's 4 px snap grid; 1920 × 1080 unless told otherwise.