folder rename

This commit is contained in:
gsinghpal
2026-04-16 20:53:53 -04:00
parent 3f3ddcbab4
commit 7c7ef06057
634 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,196 @@
// =============================================================================
// Fusion Plating — Safety (EHS) backend styles
// Copyright 2026 Nexa Systems Inc.
// License OPL-1 (Odoo Proprietary License v1.0)
//
// THEME AWARENESS
// ---------------
// This file NEVER hardcodes backgrounds or text colours. All surface colours
// come from Odoo / Bootstrap CSS custom properties so the component renders
// correctly in BOTH light and dark mode without any duplication:
//
// background: var(--bs-body-bg) // main surface
// surface: var(--o-view-background-color) // view canvas
// foreground: var(--bs-body-color) // main text
// muted text: var(--bs-secondary-color)
// border: var(--bs-border-color)
// primary: var(--o-action) // Odoo action/brand
//
// Hazard / severity tints use color-mix() against the Bootstrap theme
// tokens so a red badge is darker on light mode and brighter on dark mode
// automatically — one rule, two looks.
//
// We never target `.o_dark`, `html.dark`, or `@media (prefers-color-scheme)`
// to override colours. If you find yourself needing that, it's a smell —
// use a variable instead.
// =============================================================================
// -----------------------------------------------------------------------------
// Local helpers
// -----------------------------------------------------------------------------
@mixin fp-tint($color-var, $amount: 12%) {
background-color: color-mix(in srgb, var(#{$color-var}) #{$amount}, transparent);
color: var(#{$color-var});
border: 1px solid color-mix(in srgb, var(#{$color-var}) 35%, transparent);
}
// -----------------------------------------------------------------------------
// SDS kanban — hazard-class tinted card
// -----------------------------------------------------------------------------
.o_fp_sds_kanban {
.o_fp_sds_card {
// Use a left border tint by hazard class — subtle, theme-aware.
border-left-width: 4px;
border-left-color: var(--bs-border-color);
&[data-hazard="flammable"],
&[data-hazard="oxidizer"] {
border-left-color: var(--bs-danger);
background-color: color-mix(in srgb, var(--bs-danger) 4%, var(--o-view-background-color, var(--bs-body-bg)));
}
&[data-hazard="corrosive"],
&[data-hazard="toxic"],
&[data-hazard="carcinogen"],
&[data-hazard="reproductive_toxin"] {
border-left-color: var(--bs-warning);
background-color: color-mix(in srgb, var(--bs-warning) 4%, var(--o-view-background-color, var(--bs-body-bg)));
}
&[data-hazard="compressed_gas"],
&[data-hazard="sensitizer"],
&[data-hazard="aquatic_toxin"] {
border-left-color: var(--bs-info, var(--o-action));
}
// Status overlay — expired wins over hazard tint.
&[data-state="expired"] {
border-left-color: var(--bs-danger);
opacity: 0.85;
}
&[data-state="expiring_soon"] {
border-left-color: var(--bs-warning);
}
&[data-state="withdrawn"] {
opacity: 0.6;
}
}
.o_fp_badge {
padding: 2px 8px;
font-size: 0.72rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.02em;
border-radius: 999px;
&[data-state="current"] {
@include fp-tint(--bs-success);
}
&[data-state="expiring_soon"] {
@include fp-tint(--bs-warning);
}
&[data-state="expired"] {
@include fp-tint(--bs-danger);
}
&[data-state="withdrawn"] {
@include fp-tint(--bs-secondary-color);
}
}
}
// -----------------------------------------------------------------------------
// Training kanban — expiry indicator on the card
// -----------------------------------------------------------------------------
.o_fp_training_kanban {
.o_fp_training_card {
border-left-width: 4px;
border-left-color: var(--bs-success);
&[data-state="expiring_soon"] {
border-left-color: var(--bs-warning);
}
&[data-state="expired"] {
border-left-color: var(--bs-danger);
background-color: color-mix(in srgb, var(--bs-danger) 5%, var(--o-view-background-color, var(--bs-body-bg)));
}
}
.o_fp_badge {
padding: 2px 8px;
font-size: 0.72rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.02em;
border-radius: 999px;
&[data-state="current"] {
@include fp-tint(--bs-success);
}
&[data-state="expiring_soon"] {
@include fp-tint(--bs-warning);
}
&[data-state="expired"] {
@include fp-tint(--bs-danger);
}
}
}
// -----------------------------------------------------------------------------
// Incident kanban — severity tint by type
// -----------------------------------------------------------------------------
.o_fp_incident_kanban {
.o_fp_incident_card {
border-left-width: 4px;
border-left-color: var(--bs-secondary-color);
// High-severity
&[data-type="injury"],
&[data-type="lost_time"],
&[data-type="medical"] {
border-left-color: var(--bs-danger);
background-color: color-mix(in srgb, var(--bs-danger) 5%, var(--o-view-background-color, var(--bs-body-bg)));
}
// Mid-severity
&[data-type="first_aid"],
&[data-type="property_damage"],
&[data-type="environmental"] {
border-left-color: var(--bs-warning);
}
// Low-severity
&[data-type="near_miss"] {
border-left-color: var(--bs-info, var(--o-action));
}
// Closed records dim
&[data-state="closed"] {
opacity: 0.65;
}
}
.o_fp_badge {
padding: 2px 8px;
font-size: 0.72rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.02em;
border-radius: 999px;
&[data-state="draft"] {
@include fp-tint(--bs-secondary-color);
}
&[data-state="investigation"] {
@include fp-tint(--bs-warning);
}
&[data-state="closed"] {
@include fp-tint(--bs-success);
}
}
}