UNPKG

@crashbytes/react-version-compare

Version:

A React component for comparing strings and arrays with precise word-level and item-level highlighting of differences.

174 lines (148 loc) 3.17 kB
/* Compare.css */ .compare-side-by-side { display: flex; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; border: 1px solid #ddd; border-radius: 6px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.1); } .compare-inline { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; border: 1px solid #ddd; border-radius: 6px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.1); padding: 16px; } .compare-panel { flex: 1; display: flex; flex-direction: column; } .compare-panel:first-child { border-right: 1px solid #ddd; } .compare-header { padding: 12px 16px; background-color: #f6f8fa; border-bottom: 1px solid #ddd; font-weight: 600; font-size: 14px; color: #24292e; } .original-header { background-color: #ffeef0; color: #d73a49; } .modified-header { background-color: #e6ffec; color: #28a745; } .compare-content { padding: 16px; line-height: 1.5; min-height: 100px; flex: 1; } .original-content { background-color: #fefefe; } .modified-content { background-color: #fefefe; } /* String diff styling */ .diff-removed { background-color: #ffeef0; color: #d73a49; text-decoration: line-through; padding: 2px 4px; border-radius: 3px; margin: 0 1px; } .diff-added { background-color: #e6ffec; color: #28a745; padding: 2px 4px; border-radius: 3px; margin: 0 1px; } .diff-unchanged { /* No special styling for unchanged text */ } /* Array diff styling */ .diff-removed-line { background-color: #ffeef0; color: #d73a49; padding: 4px 8px; margin: 2px 0; border-radius: 3px; border-left: 3px solid #d73a49; } .diff-added-line { background-color: #e6ffec; color: #28a745; padding: 4px 8px; margin: 2px 0; border-radius: 3px; border-left: 3px solid #28a745; } .diff-unchanged-line { padding: 4px 8px; margin: 2px 0; color: #24292e; } .compare-error { padding: 16px; background-color: #ffeef0; border: 1px solid #d73a49; border-radius: 6px; color: #d73a49; font-weight: 500; } /* Contentful document comparison styles */ .diff-structure-type { font-weight: bold; color: #4a5568; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; } .diff-structure-level { color: #718096; font-size: 0.75rem; margin-left: 0.25rem; } .diff-structure-content { margin-left: 0.5rem; } .diff-removed-line .diff-structure-type { color: #c53030; } .diff-added-line .diff-structure-type { color: #38a169; } .diff-unchanged-line .diff-structure-type { color: #4a5568; } /* Enhanced styles for Contentful content */ .compare-content .diff-structure-type { display: inline-block; min-width: 80px; } .compare-content .diff-structure-level { display: inline-block; min-width: 20px; } /* Responsive design */ @media (max-width: 768px) { .compare-side-by-side { flex-direction: column; } .compare-panel:first-child { border-right: none; border-bottom: 1px solid #ddd; } }