legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
187 lines (166 loc) • 3.9 kB
CSS
/**
* Highlight Styles for Legal Documents
*
* Provides visual indicators for:
* - Imported values (blue): Fields filled from data
* - Missing values (red): Required fields without values
* - Logic fields (yellow): Fields with conditional logic or mixins
*/
/* Imported values - Successfully filled from data */
.imported-value,
.legal-field.imported-value {
border: 1px solid #0066cc;
border-radius: 2px;
padding: 1px 3px;
background-color: #e6f3ff;
color: #004085;
display: inline;
vertical-align: baseline;
white-space: normal;
}
/* Nested elements in imported values */
.imported-value a,
.legal-field.imported-value a {
display: inline;
white-space: normal;
line-height: inherit;
vertical-align: baseline;
}
/* Print styles for imported values */
@media print {
.imported-value,
.legal-field.imported-value {
border-color: #0066cc;
background-color: #e6f3ff;
color: #004085;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
}
/* Missing values - Required fields without data */
.missing-value,
.legal-field.missing-value {
border: 1px solid #dc3545;
border-radius: 2px;
padding: 1px 3px;
background-color: #fff5f5;
color: #dc3545;
display: inline;
vertical-align: baseline;
white-space: normal;
font-weight: 500;
}
/* Nested elements in missing values */
.missing-value a,
.legal-field.missing-value a {
display: inline;
white-space: normal;
line-height: inherit;
vertical-align: baseline;
}
/* Print styles for missing values */
@media print {
.missing-value,
.legal-field.missing-value {
border-color: #dc3545;
background-color: #fff5f5;
color: #dc3545;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
}
/* Logic fields - Fields with conditional logic or mixins */
.highlight,
.legal-field.highlight {
border: 1px solid #ffc107;
border-radius: 2px;
padding: 3px 3px;
background-color: #f9f3df;
color: #856404;
display: inline;
vertical-align: baseline;
white-space: normal;
margin: 1px 0;
}
/* Nested highlighting */
.highlight .imported-value,
.highlight .missing-value,
.legal-field.highlight .legal-field.imported-value,
.legal-field.highlight .legal-field.missing-value {
margin: 0;
padding: 0 3px;
border-radius: 1px;
}
/* Print styles for logic fields */
@media print {
.highlight,
.legal-field.highlight {
border-color: #ffc107;
background-color: #f9f3df;
color: #856404;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
}
/* Additional helper classes */
/* Legend for highlighting */
.highlight-legend {
margin: 20px 0;
padding: 15px;
border: 1px solid #ddd;
border-radius: 4px;
background-color: #f8f9fa;
page-break-inside: avoid;
}
.highlight-legend h3 {
margin-top: 0;
font-size: 1.1em;
}
.highlight-legend ul {
list-style: none;
padding-left: 0;
margin: 10px 0 0 0;
}
.highlight-legend li {
margin: 5px 0;
padding: 5px 10px;
border-radius: 3px;
}
.highlight-legend .imported-example {
background-color: #e6f3ff;
border: 1px solid #0066cc;
color: #004085;
}
.highlight-legend .missing-example {
background-color: #fff5f5;
border: 1px solid #dc3545;
color: #dc3545;
}
.highlight-legend .logic-example {
background-color: #f9f3df;
border: 1px solid #ffc107;
color: #856404;
}
/* Ensure visibility in different contexts */
@media screen {
.imported-value,
.missing-value,
.highlight,
.legal-field.imported-value,
.legal-field.missing-value,
.legal-field.highlight {
transition: background-color 0.2s ease;
}
.imported-value:hover,
.legal-field.imported-value:hover {
background-color: #cce5ff;
}
.missing-value:hover,
.legal-field.missing-value:hover {
background-color: #ffe5e5;
}
.highlight:hover,
.legal-field.highlight:hover {
background-color: #fff3cd;
}
}