From f4dd2f1203cb934636d750cfd1ab791e3c4b9fc7 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Wed, 2 Nov 2022 13:14:26 +0100 Subject: [PATCH 1/8] TASK Rewrite Neos.Neos:Shortcut to pure Fusion --- .../Private/Fusion/Prototypes/Shortcut.fusion | 97 ++++++++++++++++++- .../Templates/FusionObjects/Shortcut.html | 44 --------- 2 files changed, 93 insertions(+), 48 deletions(-) delete mode 100644 Neos.Neos/Resources/Private/Templates/FusionObjects/Shortcut.html diff --git a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion index 0039b2efbd1..364753f33d8 100644 --- a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion +++ b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion @@ -1,15 +1,104 @@ # Neos.Neos.Shortcut is given a representation for editing purposes # -prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Template) { - templatePath = 'resource://Neos.Neos/Private/Templates/FusionObjects/Shortcut.html' - +prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { targetMode = ${q(node).property('targetMode')} firstChildNode = ${q(node).children('[instanceof Neos.Neos:Document]').get(0)} target = ${q(node).property('target')} targetConverted = ${Neos.Link.hasSupportedScheme(this.target) ? Neos.Link.convertUriToObject(this.target, node) : null} targetSchema = ${Neos.Link.getScheme(this.target)} - node = ${node} + i18n = ${I18n.id(null).package('Neos.Neos').source('Main').locale(Neos.Backend.interfaceLanguage())} + + renderer = Neos.Fusion:Match { + @subject = ${props.targetMode} + + selectedTarget = Neos.Fusion:Join { + @glue = '
' + mainMessage = Neos.Fusion:Value { + fallback = 'This is a shortcut to a specific target:' + value = ${props.i18n.id('shortcut.toSpecificTarget').value(this.fallback).translate()} + } + targetMessage = Neos.Fusion:Case { + targetSelected { + condition = ${props.target} + renderer = Neos.Fusion:Match { + @subject = ${props.targetSchema} + + node = Neos.Fusion:Value { + targetUriTag = Neos.Neos:NodeLink { + node = ${props.targetConverted} + } + fallback = afx` + Click {this.targetUriTag} to continue to the page. + ` + value = ${props.i18n.id('shortcut.clickToContinueToPage').arguments([this.targetUriTag]).value(this.fallback).translate()} + } + + asset = Neos.Fusion:Value { + targetUriTag = afx` + + + {props.targetConverted.label} + + ` + fallback = afx` + Click {this.targetUriTag} to see the file. + ` + value = ${props.i18n.id('shortcut.clickToContinueToAsset').arguments([this.targetUriTag]).value(this.fallback).translate()} + } + + @default = Neos.Fusion:Value { + targetUriTag = afx` + {props.target} + ` + fallback = afx` + Click {this.targetUriTag} to open the link. + ` + value = ${props.i18n.id('shortcut.clickToContinueToExternalUrl').arguments([this.targetUriTag]).value(this.fallback).translate()} + } + } + } + noTargetSelected { + @position = 'end' + condition = true + renderer = Neos.Fusion:Value { + fallback = 'no target has been selected' + value = ${props.i18n.id('shortcut.noTargetSelected').value(this.fallback).translate()} + } + } + } + } + + firstChildNode = Neos.Fusion:Value { + targetUriTag = Neos.Neos:NodeLink { + node = ${props.firstChildNode} + } + fallback = afx` + This is a shortcut to the first child page.
+ Click {this.targetUriTag} to continue to the page. + ` + value = ${props.i18n.id('shortcut.clickToContinueToFirstChildNode').arguments([this.targetUriTag]).value(this.fallback).translate()} + } + + parentNode = Neos.Fusion:Value { + targetUriTag = Neos.Neos:NodeLink { + node = ${props.node.parent} + } + fallback = afx` + This is a shortcut to the parent page.
+ Click {this.targetUriTag} to continue to the page. + ` + value = ${props.i18n.id('shortcut.clickToContinueToParentNode').arguments([this.targetUriTag]).value(this.fallback).translate()} + } + } + + renderer.@process.contentWrap = afx` +
+

+ {value} +

+
+ ` @exceptionHandler = 'Neos\\Neos\\Fusion\\ExceptionHandlers\\NodeWrappingHandler' } diff --git a/Neos.Neos/Resources/Private/Templates/FusionObjects/Shortcut.html b/Neos.Neos/Resources/Private/Templates/FusionObjects/Shortcut.html deleted file mode 100644 index 6fa8120681a..00000000000 --- a/Neos.Neos/Resources/Private/Templates/FusionObjects/Shortcut.html +++ /dev/null @@ -1,44 +0,0 @@ -{namespace neos=Neos\Neos\ViewHelpers} -
-

- - - {neos:backend.translate(id: 'shortcut.toSpecificTarget', value: 'This is a shortcut to a specific target:')}
- - - - - - Click to continue to the page. - - - - {targetConverted.label}'}"> - Click {targetConverted.label} to see the file. - - - - {target}'}"> - Click {target} to open the link. - - - - - {neos:backend.translate(id: 'shortcut.noTargetSelected', value: '(no target has been selected)')} - -
- - - This is a shortcut to the first child page.
- Click to continue to the page. -
-
- - - This is a shortcut to the parent page.
- Click to continue to the page. -
-
-
-

-
From 9fb5ef02b7aa699f2249b133593c6e431137addb Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Wed, 2 Nov 2022 13:25:15 +0100 Subject: [PATCH 2/8] TASK Neos.Neos:Shortcut remove translation fallbacks with https://github.com/neos/neos-development-collection/pull/3937 we dont need the fallbacks anymore ;) --- .../Private/Fusion/Prototypes/Shortcut.fusion | 37 ++++--------------- 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion index 364753f33d8..603210b8f49 100644 --- a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion +++ b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion @@ -14,10 +14,7 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { selectedTarget = Neos.Fusion:Join { @glue = '
' - mainMessage = Neos.Fusion:Value { - fallback = 'This is a shortcut to a specific target:' - value = ${props.i18n.id('shortcut.toSpecificTarget').value(this.fallback).translate()} - } + mainMessage = ${props.i18n.id('shortcut.toSpecificTarget').translate()} targetMessage = Neos.Fusion:Case { targetSelected { condition = ${props.target} @@ -28,10 +25,7 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { targetUriTag = Neos.Neos:NodeLink { node = ${props.targetConverted} } - fallback = afx` - Click {this.targetUriTag} to continue to the page. - ` - value = ${props.i18n.id('shortcut.clickToContinueToPage').arguments([this.targetUriTag]).value(this.fallback).translate()} + value = ${props.i18n.id('shortcut.clickToContinueToPage').arguments([this.targetUriTag]).translate()} } asset = Neos.Fusion:Value { @@ -41,30 +35,21 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { {props.targetConverted.label} ` - fallback = afx` - Click {this.targetUriTag} to see the file. - ` - value = ${props.i18n.id('shortcut.clickToContinueToAsset').arguments([this.targetUriTag]).value(this.fallback).translate()} + value = ${props.i18n.id('shortcut.clickToContinueToAsset').arguments([this.targetUriTag]).translate()} } @default = Neos.Fusion:Value { targetUriTag = afx` {props.target} ` - fallback = afx` - Click {this.targetUriTag} to open the link. - ` - value = ${props.i18n.id('shortcut.clickToContinueToExternalUrl').arguments([this.targetUriTag]).value(this.fallback).translate()} + value = ${props.i18n.id('shortcut.clickToContinueToExternalUrl').arguments([this.targetUriTag]).translate()} } } } noTargetSelected { @position = 'end' condition = true - renderer = Neos.Fusion:Value { - fallback = 'no target has been selected' - value = ${props.i18n.id('shortcut.noTargetSelected').value(this.fallback).translate()} - } + renderer = ${props.i18n.id('shortcut.noTargetSelected').translate()} } } } @@ -73,22 +58,14 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { targetUriTag = Neos.Neos:NodeLink { node = ${props.firstChildNode} } - fallback = afx` - This is a shortcut to the first child page.
- Click {this.targetUriTag} to continue to the page. - ` - value = ${props.i18n.id('shortcut.clickToContinueToFirstChildNode').arguments([this.targetUriTag]).value(this.fallback).translate()} + value = ${props.i18n.id('shortcut.clickToContinueToFirstChildNode').arguments([this.targetUriTag]).translate()} } parentNode = Neos.Fusion:Value { targetUriTag = Neos.Neos:NodeLink { node = ${props.node.parent} } - fallback = afx` - This is a shortcut to the parent page.
- Click {this.targetUriTag} to continue to the page. - ` - value = ${props.i18n.id('shortcut.clickToContinueToParentNode').arguments([this.targetUriTag]).value(this.fallback).translate()} + value = ${props.i18n.id('shortcut.clickToContinueToParentNode').arguments([this.targetUriTag]).translate()} } } From a776cb06f35dba3e1ea4a8506ae83a004a0598c0 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Wed, 2 Nov 2022 13:37:25 +0100 Subject: [PATCH 3/8] TASK Neos.Neos:Shortcut cleanup Fusion nesting --- .../Private/Fusion/Prototypes/Shortcut.fusion | 57 +++++++++---------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion index 603210b8f49..bb6b762ef63 100644 --- a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion +++ b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion @@ -15,43 +15,38 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { selectedTarget = Neos.Fusion:Join { @glue = '
' mainMessage = ${props.i18n.id('shortcut.toSpecificTarget').translate()} - targetMessage = Neos.Fusion:Case { - targetSelected { - condition = ${props.target} - renderer = Neos.Fusion:Match { - @subject = ${props.targetSchema} + targetSelected = Neos.Fusion:Match { + @if.isTarget = ${props.target} - node = Neos.Fusion:Value { - targetUriTag = Neos.Neos:NodeLink { - node = ${props.targetConverted} - } - value = ${props.i18n.id('shortcut.clickToContinueToPage').arguments([this.targetUriTag]).translate()} - } + @subject = ${props.targetSchema} - asset = Neos.Fusion:Value { - targetUriTag = afx` - - - {props.targetConverted.label} - - ` - value = ${props.i18n.id('shortcut.clickToContinueToAsset').arguments([this.targetUriTag]).translate()} - } - - @default = Neos.Fusion:Value { - targetUriTag = afx` - {props.target} - ` - value = ${props.i18n.id('shortcut.clickToContinueToExternalUrl').arguments([this.targetUriTag]).translate()} - } + node = Neos.Fusion:Value { + targetUriTag = Neos.Neos:NodeLink { + node = ${props.targetConverted} } + value = ${props.i18n.id('shortcut.clickToContinueToPage').arguments([this.targetUriTag]).translate()} } - noTargetSelected { - @position = 'end' - condition = true - renderer = ${props.i18n.id('shortcut.noTargetSelected').translate()} + + asset = Neos.Fusion:Value { + targetUriTag = afx` + + + {props.targetConverted.label} + + ` + value = ${props.i18n.id('shortcut.clickToContinueToAsset').arguments([this.targetUriTag]).translate()} + } + + @default = Neos.Fusion:Value { + targetUriTag = afx` + {props.target} + ` + value = ${props.i18n.id('shortcut.clickToContinueToExternalUrl').arguments([this.targetUriTag]).translate()} } } + + noTargetSelected = ${props.i18n.id('shortcut.noTargetSelected').translate()} + noTargetSelected.@if.isNotTarget = ${!props.target} } firstChildNode = Neos.Fusion:Value { From 1ce5b154f44cd84199ed70a73f4aabb8e06a10c3 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Wed, 2 Nov 2022 13:42:13 +0100 Subject: [PATCH 4/8] TASK Neos.Neos:Shortcut dont cache the backend view Otherwise, changes from `Neos.Backend.interfaceLanguage()` will not be reflected. And its like a backend module -> which i wouldn't cache also. --- .../Resources/Private/Fusion/Prototypes/Shortcut.fusion | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion index bb6b762ef63..d22fafbe9ef 100644 --- a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion +++ b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion @@ -72,5 +72,12 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { ` + @cache { + mode = "uncached" + context { + 0 = "node" + } + } + @exceptionHandler = 'Neos\\Neos\\Fusion\\ExceptionHandlers\\NodeWrappingHandler' } From d012fe602348426f3f418d4b477c224d5b342277 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Sat, 12 Nov 2022 11:13:41 +0100 Subject: [PATCH 5/8] BUGFIX 3835 apply suggestions from code review --- .../Private/Fusion/Prototypes/Shortcut.fusion | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion index d22fafbe9ef..8b050ee433d 100644 --- a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion +++ b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion @@ -28,12 +28,16 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { } asset = Neos.Fusion:Value { - targetUriTag = afx` - - - {props.targetConverted.label} - - ` + targetUriTag = Neos.Fusion:Tag { + tagName = 'a' + attributes { + target = '_blank' + href = Neos.Fusion:ResourceUri { + resource = ${props.targetConverted.resource} + } + } + content = ${props.targetConverted.label} + } value = ${props.i18n.id('shortcut.clickToContinueToAsset').arguments([this.targetUriTag]).translate()} } From 0341a5e568f645e05cb5a0a40e070e2eed4e0282 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Tue, 31 Oct 2023 09:30:21 +0100 Subject: [PATCH 6/8] TASK: Adjust `Neos.Neos:Shortcut` to work with Neos 9 --- Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion index 8b050ee433d..4224aa85e23 100644 --- a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion +++ b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion @@ -62,7 +62,7 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { parentNode = Neos.Fusion:Value { targetUriTag = Neos.Neos:NodeLink { - node = ${props.node.parent} + node = ${q(node).parent().get(0)} } value = ${props.i18n.id('shortcut.clickToContinueToParentNode').arguments([this.targetUriTag]).translate()} } From 8c27d3e30dba66f28ab0d4f92918dbe11d06ebfd Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Tue, 31 Oct 2023 09:50:19 +0100 Subject: [PATCH 7/8] TASK: Rename Neos.scss Main.scss to be consistent The compiled file is also named Main.css --- Neos.Neos/Resources/Private/Styles/{Neos.scss => Main.scss} | 0 Neos.Neos/webpack.styles.config.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename Neos.Neos/Resources/Private/Styles/{Neos.scss => Main.scss} (100%) diff --git a/Neos.Neos/Resources/Private/Styles/Neos.scss b/Neos.Neos/Resources/Private/Styles/Main.scss similarity index 100% rename from Neos.Neos/Resources/Private/Styles/Neos.scss rename to Neos.Neos/Resources/Private/Styles/Main.scss diff --git a/Neos.Neos/webpack.styles.config.js b/Neos.Neos/webpack.styles.config.js index 15fc8667b8f..c877b20fa76 100644 --- a/Neos.Neos/webpack.styles.config.js +++ b/Neos.Neos/webpack.styles.config.js @@ -6,7 +6,7 @@ const stylesConfig = { context: __dirname, devtool: "source-map", entry: { - Main: ["./Resources/Private/Styles/Neos.scss"], + Main: ["./Resources/Private/Styles/Main.scss"], Lite: ["./Resources/Private/Styles/Lite.scss"], Minimal: ["./Resources/Private/Styles/Minimal.scss"], Login: ["./Resources/Private/Styles/Login.scss"], From d9ea8cae1d8f0fd8b8ceb6fa60e8d1361143c0d3 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:31:22 +0100 Subject: [PATCH 8/8] TASK: Move Shortcut.css from Ui to Neos --- .../Private/Fusion/Prototypes/Shortcut.fusion | 27 ++++++++++----- .../Resources/Private/Fusion/RootCase.fusion | 8 ++--- .../Resources/Private/Styles/Shortcut.scss | 32 ++++++++++++++++++ .../Resources/Private/Styles/_Global.scss | 33 ------------------- .../Resources/Public/Styles/Shortcut.css | 1 + Neos.Neos/webpack.styles.config.js | 1 + 6 files changed, 55 insertions(+), 47 deletions(-) create mode 100644 Neos.Neos/Resources/Private/Styles/Shortcut.scss create mode 100644 Neos.Neos/Resources/Public/Styles/Shortcut.css diff --git a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion index 4224aa85e23..7ffe67d67e5 100644 --- a/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion +++ b/Neos.Neos/Resources/Private/Fusion/Prototypes/Shortcut.fusion @@ -1,6 +1,23 @@ # Neos.Neos.Shortcut is given a representation for editing purposes # -prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { +prototype(Neos.Neos:Shortcut) < prototype(Neos.Neos:Page) { + head.stylesheets { + shortcut = afx` + + ` + } + + body = afx` +
+

+ +

+
+ ` +} + +/** @internal */ +prototype(Neos.Neos:Shortcut.Link) < prototype(Neos.Fusion:Component) { targetMode = ${q(node).property('targetMode')} firstChildNode = ${q(node).children('[instanceof Neos.Neos:Document]').get(0)} target = ${q(node).property('target')} @@ -68,14 +85,6 @@ prototype(Neos.Neos:Shortcut) < prototype(Neos.Fusion:Component) { } } - renderer.@process.contentWrap = afx` -
-

- {value} -

-
- ` - @cache { mode = "uncached" context { diff --git a/Neos.Neos/Resources/Private/Fusion/RootCase.fusion b/Neos.Neos/Resources/Private/Fusion/RootCase.fusion index ea6596c38e7..7a7f304c411 100644 --- a/Neos.Neos/Resources/Private/Fusion/RootCase.fusion +++ b/Neos.Neos/Resources/Private/Fusion/RootCase.fusion @@ -6,13 +6,11 @@ root = Neos.Fusion:Case root { shortcut { - prototype(Neos.Neos:Page) { - body = Neos.Neos:Shortcut - } - + # this code path will only be taken for backend views, as the node controller + # will take care of resolving the shortcut in the frontend @position = 'start' condition = ${q(node).is('[instanceof Neos.Neos:Shortcut]')} - type = 'Neos.Neos:Page' + renderer = Neos.Neos:Shortcut } editPreviewMode { diff --git a/Neos.Neos/Resources/Private/Styles/Shortcut.scss b/Neos.Neos/Resources/Private/Styles/Shortcut.scss new file mode 100644 index 00000000000..5a80bb6f8bb --- /dev/null +++ b/Neos.Neos/Resources/Private/Styles/Shortcut.scss @@ -0,0 +1,32 @@ +#neos-shortcut { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: $grayMedium; + z-index: 9999; + @include font; + + p { + position: relative; + margin: 0 auto; + width: 500px; + height: 60px; + top: 50%; + margin-top: -30px; + color: #fff; + font-size: 22px; + line-height: 1.4; + text-align: center; + + a { + color: $blue; + text-decoration: none; + + &:hover { + color: $blueLight; + } + } + } +} diff --git a/Neos.Neos/Resources/Private/Styles/_Global.scss b/Neos.Neos/Resources/Private/Styles/_Global.scss index 76d8bea161c..b44a7102229 100644 --- a/Neos.Neos/Resources/Private/Styles/_Global.scss +++ b/Neos.Neos/Resources/Private/Styles/_Global.scss @@ -5,36 +5,3 @@ .neos-rendering-exception { word-wrap: break-word; } - -#neos-shortcut { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: $grayMedium; - z-index: 9999; - @include font; - - p { - position: relative; - margin: 0 auto; - width: 500px; - height: 60px; - top: 50%; - margin-top: -30px; - color: #fff; - font-size: 22px; - line-height: 1.4; - text-align: center; - - a { - color: $blue; - text-decoration: none; - - &:hover { - color: $blueLight; - } - } - } -} diff --git a/Neos.Neos/Resources/Public/Styles/Shortcut.css b/Neos.Neos/Resources/Public/Styles/Shortcut.css new file mode 100644 index 00000000000..4b7c4b242cf --- /dev/null +++ b/Neos.Neos/Resources/Public/Styles/Shortcut.css @@ -0,0 +1 @@ +#neos-shortcut {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: #323232;z-index: 9999;font-family: "Noto Sans", sans-serif;-webkit-font-smoothing: antialiased;}#neos-shortcut p {position: relative;margin: 0 auto;width: 500px;height: 60px;top: 50%;margin-top: -30px;color: #fff;font-size: 22px;line-height: 1.4;text-align: center;}#neos-shortcut p a {color: #00b5ff;text-decoration: none;}#neos-shortcut p a:hover {color: #39c6ff;} diff --git a/Neos.Neos/webpack.styles.config.js b/Neos.Neos/webpack.styles.config.js index c877b20fa76..057d95fecd5 100644 --- a/Neos.Neos/webpack.styles.config.js +++ b/Neos.Neos/webpack.styles.config.js @@ -13,6 +13,7 @@ const stylesConfig = { Error: ["./Resources/Private/Styles/Error.scss"], RawContentMode: ["./Resources/Private/Styles/RawContentMode.scss"], Welcome: ["./Resources/Private/Styles/Welcome.scss"], + Shortcut: ["./Resources/Private/Styles/Shortcut.scss"], }, output: { path: __dirname + "/Resources/Public/Styles",