-
Notifications
You must be signed in to change notification settings - Fork 2
BP-1293: Add theming support to new rich-text editor for basic redactor configuration #240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 6 commits
94a3604
19895ee
1196aa4
162bab4
0444e4e
71f0a1c
6f32991
d58d056
22133a9
dead72d
6768b1a
80792fb
f4151f9
b9f241c
8d2d02d
5a54b11
194e84e
2bdd9ea
6977b0b
d4dda13
0789b8f
608e968
b4ea198
2bb570a
2102dcc
4380c1b
5adf203
1243f87
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| @use 'sass:map'; | ||
|
|
||
| $material-button-background: #237BBB; | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| @mixin generate-from($theme) { | ||
|
|
||
| $theming-buttons: map.get($theme, 'general', 'fonts', 'buttons'); | ||
|
|
||
| .enigmatry-redactor-content { | ||
| button, .rx-content button { | ||
| @if $theming-buttons { | ||
| background-color: map.get($theme, 'general', 'colors', 'primary'); | ||
| font: { | ||
| family: map.get($theming-buttons, 'family'); | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| size: map.get($theming-buttons, 'size'); | ||
| } | ||
| letter-spacing: map.get($theming-buttons, 'letter-spacing'); | ||
| } | ||
| @else { | ||
| background-color: $material-button-background; | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| } | ||
| } | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| @use 'sass:map'; | ||
|
|
||
| $redactor-checkboxes-selector: '[data-rx-type = 'todoitem'] '; | ||
| $default-material-checkbox: #E94887; | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| @mixin generate-from($theme) { | ||
|
|
||
| $theming-checkboxes: map.get($theme, 'general', 'checkboxes'); | ||
|
|
||
| .enigmatry-redactor-content { | ||
|
|
||
| @if map.get($theme, 'general', 'colors', 'accent') { | ||
| .rx-editor #{$redactor-checkboxes-selector} input:checked::before { | ||
| border-color: map.get($theme, 'general', 'colors', 'accent'); | ||
| background-color: map.get($theme, 'general', 'colors', 'accent'); | ||
| } | ||
| } | ||
| @else { | ||
| .rx-editor #{$redactor-checkboxes-selector} input:checked::before { | ||
| border-color: $default-material-checkbox; | ||
| background-color: $default-material-checkbox; | ||
| } | ||
| } | ||
|
|
||
| @if $theming-checkboxes { | ||
| .rx-editor #{$redactor-checkboxes-selector} input::before { | ||
| background-color: map.get($theming-checkboxes, 'background'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| @use 'sass:map'; | ||
| @use 'tables-generator' as tables; | ||
| @use 'buttons-generator' as buttons; | ||
| @use 'typography-generator' as typography; | ||
| @use 'checkboxes-generator' as checkboxes; | ||
|
|
||
| @mixin generate-from($theme) { | ||
| @include typography.generate-from($theme); | ||
| @include tables.generate-from($theme); | ||
| @include buttons.generate-from($theme); | ||
| @include checkboxes.generate-from($theme); | ||
|
|
||
| $theming-colors: map.get($theme, 'general', 'colors'); | ||
|
|
||
| .enigmatry-redactor-content { | ||
| .rx-main-container, .rx-toolbox-container { | ||
| @if map.get($theme, 'general', 'inputs', 'background') { | ||
| background: map.get($theme, 'general', 'inputs', 'background'); | ||
| } | ||
| @else { | ||
| background: transparent; | ||
| } | ||
| } | ||
|
|
||
| .rx-toolbar-buttons .rx-button { | ||
| &.active, &:hover { | ||
| @if map.get($theme, 'general', 'inputs', 'background') { | ||
| background: map.get($theme, 'general', 'inputs', 'background'); | ||
| } | ||
| @else { | ||
| background: transparent; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| @use 'sass:map'; | ||
| @use '../../../../../scss-foundation/src/modules/lists/row-coloring' as list; | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| $material-odd-background: #F0F0F0; | ||
|
|
||
| @mixin generate-from($theme) { | ||
| $theming-table: map.get($theme, 'tables', 'rows', 'odd-even-background'); | ||
|
|
||
| .enigmatry-redactor-content table { | ||
| @if $theming-table { | ||
| tr { | ||
| @include list.odd-row-coloring(map.get($theming-table, 'odd')); | ||
| @include list.even-row-coloring(map.get($theming-table, 'even')); | ||
| } | ||
| } | ||
| @else { | ||
| tr { | ||
| @include list.even-row-coloring($material-odd-background); | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| @include list.odd-row-coloring(transparent); | ||
| } | ||
| } | ||
|
|
||
| @if (map.get($theme, 'tables', 'header', 'font-size')) { | ||
| th { | ||
| font-size: map.get($theme, 'tables', 'header', 'font-size'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| @use 'sass:map'; | ||
|
|
||
| $material-input-text: rgb(0 0 0 / .87); | ||
| $material-font-family: 'Roboto', sans-serif; | ||
|
||
|
|
||
| @mixin generate-from($theme) { | ||
| $theming-fonts: map.get($theme, 'general', 'fonts'); | ||
| $redactor-th-selector: 'thead th'; | ||
|
|
||
| .enigmatry-redactor-content { | ||
| .rx-editor, .rx-content { | ||
| @if $theming-fonts { | ||
| $body-font-family: map.get($theming-fonts, 'body', 'family'); | ||
|
|
||
| font: { | ||
| family: map.get($theming-fonts, 'body', 'family'); | ||
| size: map.get($theming-fonts, 'body', 'size'); | ||
| } | ||
| letter-spacing: map.get($theming-fonts, 'body', 'letter-spacing'); | ||
|
|
||
|
||
| h1, h2, h3, h4 { | ||
| font-family: map.get($theming-fonts, 'hero-titles', 'family'); | ||
| letter-spacing: map.get($theming-fonts, 'hero-titles', 'letter-spacing'); | ||
| } | ||
|
|
||
| h5, h6 { | ||
| font-family: map.get($theming-fonts, 'titles', 'family'); | ||
| letter-spacing: map.get($theming-fonts, 'titles', 'letter-spacing'); | ||
| } | ||
|
|
||
| table { | ||
| font-size: map.get($theming-fonts, 'body', 'size'); | ||
|
|
||
| #{$redactor-th-selector} { | ||
| font-size: map.get($theme, 'tables', 'header', 'font-size'); | ||
| } | ||
| } | ||
| } | ||
| @else { | ||
| color: $material-input-text; | ||
| font-family: $material-font-family; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,2 @@ | ||
| @use 'core/components'; | ||
| @use 'vendors/overrides'; | ||
jovana-marceta marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| @use 'overrides/redactor'; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| @use 'redactor'; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| @use 'scss-foundation/src/modules/display/items'; | ||
|
|
||
| $material-box-shadow: 0 3px 1px -2px rgb(0 0 0 / .2), 0 2px 2px 0 rgb(0 0 0 / .14), 0 1px 5px 0 rgb(0 0 0 / .12); | ||
| $material-box-shadow-hovered: 0 2px 4px -1px rgb(0 0 0 / .2), 0 4px 5px 0 rgb(0 0 0 / .14), 0 1px 10px 0 rgb(0 0 0 / .12); | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| $redactor-link-selectors: 'a, a:visited, a:focus, a:hover'; | ||
|
|
||
| .enigmatry-redactor-content .rx-content { | ||
| #{$redactor-link-selectors} { | ||
| @include items.fully-align(center, center); | ||
| display: inline-flex; | ||
| cursor: pointer; | ||
| } | ||
|
|
||
| button, #{$redactor-link-selectors} { | ||
| @include items.fully-align(center, flex-start); | ||
| height: 36px; | ||
| margin: 8px 8px 8px 0; | ||
| padding: 0 16px; | ||
| border: none; | ||
| color: #000; | ||
| text-decoration: none; | ||
|
|
||
| font: { | ||
| family: 'Roboto', sans-serif; | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| weight: 500; | ||
| size: 14px; | ||
| } | ||
| } | ||
|
|
||
| a:hover { | ||
| background-color: #F0F0F0; | ||
| } | ||
|
|
||
| button { | ||
| height: 36px; | ||
| border-radius: 4px; | ||
| box-shadow: $material-box-shadow; | ||
| color: #FFF; | ||
|
|
||
| &:hover { | ||
| box-shadow: $material-box-shadow-hovered; | ||
| } | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| @use 'sass:map'; | ||
|
|
||
| $material-text-color: rgb(0 0 0 / .87); | ||
| $material-border: rgb(0 0 0 / .38); | ||
| $material-border-radius: 2px; | ||
| $material-icon-color: rgb(0 0 0 / .54); | ||
| $material-checkbox-width: 18px; | ||
| $material-checkbox-height: 18px; | ||
|
|
||
| $redactor-todoitem-selector: '.rx-editor [data-rx-type = 'todoitem']'; | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| .enigmatry-redactor-content { | ||
| .rx-editor, .rx-content { | ||
| color: $material-text-color; | ||
| } | ||
|
|
||
| #{$redactor-todoitem-selector} { | ||
| input { | ||
| width: $material-checkbox-width; | ||
| height: $material-checkbox-height; | ||
| } | ||
|
|
||
| input::before, input:checked::before { | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| width: $material-checkbox-width; | ||
| height: $material-checkbox-height; | ||
| border-radius: $material-border-radius; | ||
| border-color: rgb(0 0 0 / .54); | ||
| } | ||
| } | ||
|
|
||
| .rx-button-icon svg { | ||
| fill: $material-icon-color; | ||
| } | ||
|
|
||
| .rx-main-container { | ||
| border-color: $material-border; | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| @use 'general'; | ||
| @use 'tables'; | ||
| @use 'buttons'; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| $redactor-first-row: 'tr:first-child'; | ||
| $redactor-last-row: 'tr:last-child'; | ||
jovana-marceta marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| .enigmatry-redactor-content table { | ||
| th { | ||
| font-weight: 500; | ||
| } | ||
|
|
||
| p { | ||
| margin: 0; | ||
| } | ||
|
|
||
| td { | ||
| border: 1px solid rgb(0 0 0 / .12); | ||
| } | ||
|
|
||
| #{$redactor-first-row} { | ||
| th, td { | ||
| border-top: none; | ||
| } | ||
| } | ||
|
|
||
| #{$redactor-last-row} td { | ||
| border-bottom: none; | ||
| } | ||
|
|
||
| th, td { | ||
| border: { | ||
| right: none; | ||
| left: none; | ||
| } | ||
| } | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.