@miliastry/quasar 1.0.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/Visuals/lyne.css +374 -9
- package/dist/Visuals/osu.css +393 -11
- package/dist/index.js +10470 -3336
- package/dist/index.mjs +10336 -3337
- package/dist/types/Analysis/Contracts/AnalysisReport.d.ts +22 -0
- package/dist/types/Analysis/Contracts/Contribution.d.ts +68 -0
- package/dist/types/Analysis/Contracts/Pass.d.ts +59 -0
- package/dist/types/Analysis/Contracts/PipelineContext.d.ts +34 -0
- package/dist/types/Analysis/Passes/Analysis/ColorUsageAnalyzer.d.ts +56 -0
- package/dist/types/Analysis/Passes/Analysis/GradientAnalyzer.d.ts +111 -0
- package/dist/types/Analysis/Passes/Analysis/MergeableColorAnalyzer.d.ts +26 -0
- package/dist/types/Analysis/Passes/Analysis/RainbowAnalyzer.d.ts +47 -0
- package/dist/types/Analysis/Passes/Analysis/SymbolAnalyzer.d.ts +89 -0
- package/dist/types/Analysis/Passes/Analysis/WaveAnalyzer.d.ts +44 -0
- package/dist/types/Analysis/Passes/Analysis/__tests__/GradientAnalyzer.test.d.ts +4 -0
- package/dist/types/Analysis/Passes/Analysis/__tests__/MergeableColorAnalyzer.test.d.ts +4 -0
- package/dist/types/Analysis/Passes/Analysis/__tests__/RainbowAnalyzer.test.d.ts +4 -0
- package/dist/types/Analysis/Passes/Analysis/__tests__/WaveAnalyzer.test.d.ts +4 -0
- package/dist/types/Analysis/Passes/Decision/DefaultDecision.d.ts +30 -0
- package/dist/types/Analysis/Passes/Decision/PaletteRemapDecision.d.ts +169 -0
- package/dist/types/Analysis/Passes/Decision/__tests__/DefaultDecision.test.d.ts +4 -0
- package/dist/types/Analysis/Passes/Transform/CollapseGradientTransform.d.ts +37 -0
- package/dist/types/Analysis/Passes/Transform/MergeColorsTransform.d.ts +28 -0
- package/dist/types/Analysis/Passes/Transform/RainbowCollapseTransform.d.ts +19 -0
- package/dist/types/Analysis/Passes/Transform/WaveCollapseTransform.d.ts +20 -0
- package/dist/types/Analysis/Passes/Utility/CharacterCountAnalyzer.d.ts +19 -0
- package/dist/types/Analysis/Pipeline/Pipeline.d.ts +69 -0
- package/dist/types/Analysis/Pipeline/PipelineBuilder.d.ts +31 -0
- package/dist/types/Analysis/Pipeline/PipelineStage.d.ts +17 -0
- package/dist/types/Analysis/Utils/color-utils.d.ts +60 -0
- package/dist/types/Analysis/__tests__/Integration.test.d.ts +8 -0
- package/dist/types/Analysis/__tests__/PaletteRemap.test.d.ts +14 -0
- package/dist/types/Analysis/__tests__/Pipeline.test.d.ts +10 -0
- package/dist/types/Analysis/__tests__/RoundTrip.test.d.ts +30 -0
- package/dist/types/Analysis/__tests__/SymbolAnalyzer.test.d.ts +11 -0
- package/dist/types/Analysis/index.d.ts +40 -0
- package/dist/types/BBCode/BBCodeDocumentModel.d.ts +102 -0
- package/dist/types/BBCode/BBCodeToGreenNode.d.ts +111 -0
- package/dist/types/BBCode/Parser.d.ts +78 -0
- package/dist/types/BBCode/index.d.ts +4 -0
- package/dist/types/Collab/positions.d.ts +55 -0
- package/dist/types/Commands/Command.d.ts +37 -0
- package/dist/types/Commands/CommandRegistry.d.ts +48 -0
- package/dist/types/Commands/DeleteNode.d.ts +7 -0
- package/dist/types/Commands/InsertText.d.ts +8 -0
- package/dist/types/Commands/SplitMerge.d.ts +9 -0
- package/dist/types/Commands/WrapInTag.d.ts +8 -0
- package/dist/types/Commands/index.d.ts +6 -0
- package/dist/types/Diff/TreeDiffer.d.ts +52 -0
- package/dist/types/Diff/__tests__/TreeDiffer.test.d.ts +1 -0
- package/dist/types/Diff/index.d.ts +2 -0
- package/dist/types/Edits/EditPlan.d.ts +144 -0
- package/dist/types/Edits/Optimizer.d.ts +78 -0
- package/dist/types/Edits/Rules/Rule.d.ts +91 -0
- package/dist/types/Edits/Rules/dropEmptyTags.d.ts +40 -0
- package/dist/types/Edits/Rules/dropRedundantNesting.d.ts +59 -0
- package/dist/types/Edits/Rules/index.d.ts +9 -0
- package/dist/types/Edits/Rules/mergeAdjacent.d.ts +93 -0
- package/dist/types/Edits/Rules/reorderWrappers.d.ts +42 -0
- package/dist/types/Edits/Rules/shortenHex.d.ts +30 -0
- package/dist/types/Edits/Rules/tagValue.d.ts +56 -0
- package/dist/types/Edits/Rules/unwrapInvisibleColor.d.ts +47 -0
- package/dist/types/Edits/applyEdits.d.ts +36 -0
- package/dist/types/Edits/index.d.ts +6 -0
- package/dist/types/Events/EventBus.d.ts +103 -0
- package/dist/types/Events/index.d.ts +2 -0
- package/dist/types/Formatter/Formatter.d.ts +32 -0
- package/dist/types/Formatter/index.d.ts +2 -0
- package/dist/types/HTML/HTMLDocumentModel.d.ts +13 -0
- package/dist/types/HTML/HTMLToGreenNode.d.ts +4 -0
- package/dist/types/Incremental/BracketIndex.d.ts +101 -0
- package/dist/types/Incremental/ChangeTracker.d.ts +69 -0
- package/dist/types/Incremental/IncrementalParser.d.ts +246 -0
- package/dist/types/Incremental/__tests__/BracketIndex.test.d.ts +1 -0
- package/dist/types/Incremental/__tests__/IncrementalParser.test.d.ts +1 -0
- package/dist/types/Incremental/index.d.ts +4 -0
- package/dist/types/Lexer/BBCodeLexer.d.ts +74 -0
- package/dist/types/Lexer/Lexer.d.ts +54 -0
- package/dist/types/Lexer/index.d.ts +4 -0
- package/dist/types/Linter/Linter.d.ts +58 -0
- package/dist/types/Linter/index.d.ts +2 -0
- package/dist/types/Markdown/MarkdownAST.d.ts +122 -0
- package/dist/types/Markdown/MarkdownDocumentModel.d.ts +15 -0
- package/dist/types/Markdown/MarkdownLexer.d.ts +155 -0
- package/dist/types/Markdown/MarkdownParser.d.ts +42 -0
- package/dist/types/Markdown/MarkdownToGreenNode.d.ts +6 -0
- package/dist/types/MilHibri/MilHibriDocumentModel.d.ts +21 -0
- package/dist/types/Model/DocumentModel.d.ts +318 -0
- package/dist/types/Model/NodeFactory.d.ts +29 -0
- package/dist/types/Model/TagRegistry.d.ts +165 -0
- package/dist/types/Model/index.d.ts +5 -0
- package/dist/types/Plugins/PluginAPI.d.ts +44 -0
- package/dist/types/Plugins/PluginRegistry.d.ts +81 -0
- package/dist/types/Plugins/index.d.ts +3 -0
- package/dist/types/Queries/QueryEngine.d.ts +32 -0
- package/dist/types/Queries/index.d.ts +1 -0
- package/dist/types/Reconciler/SurgicalReconciler.d.ts +23 -0
- package/dist/types/RenderPipeline/RenderPipeline.d.ts +46 -0
- package/dist/types/RenderPipeline/RenderTree.d.ts +55 -0
- package/dist/types/RenderPipeline/index.d.ts +4 -0
- package/dist/types/Repair/NestingRepair.d.ts +48 -0
- package/dist/types/Repair/index.d.ts +1 -0
- package/dist/types/Semantic/SemanticAnalyzer.d.ts +321 -0
- package/dist/types/Semantic/index.d.ts +2 -0
- package/dist/types/Symbols/SymbolTable.d.ts +47 -0
- package/dist/types/Symbols/index.d.ts +1 -0
- package/dist/types/Syntax/GreenNode.d.ts +154 -0
- package/dist/types/Syntax/GreenNodePool.d.ts +134 -0
- package/dist/types/Syntax/NodeMatcher.d.ts +75 -0
- package/dist/types/Syntax/RedNode.d.ts +280 -0
- package/dist/types/Syntax/RedNodeStore.d.ts +116 -0
- package/dist/types/Syntax/TreeBuilder.d.ts +54 -0
- package/dist/types/Syntax/__tests__/GreenNode.test.d.ts +1 -0
- package/dist/types/Syntax/__tests__/RedNode.test.d.ts +1 -0
- package/dist/types/Syntax/__tests__/RedNodeStore.test.d.ts +1 -0
- package/dist/types/Syntax/greenEdit.d.ts +64 -0
- package/dist/types/Syntax/hash.d.ts +17 -0
- package/dist/types/Syntax/index.d.ts +8 -0
- package/dist/types/Syntax/nodeAttr.d.ts +63 -0
- package/dist/types/Syntax/partition.d.ts +67 -0
- package/dist/types/Syntax/preserveNodeIds.d.ts +47 -0
- package/dist/types/Tokens/TokenResolver.d.ts +25 -0
- package/dist/types/Tokens/index.d.ts +1 -0
- package/dist/types/Transactions/Transaction.d.ts +36 -0
- package/dist/types/Transactions/UndoManager.d.ts +63 -0
- package/dist/types/Transactions/index.d.ts +3 -0
- package/dist/types/Transformers/ASTOptimizer.d.ts +34 -0
- package/dist/types/Transformers/GradientTransformer.d.ts +18 -0
- package/dist/types/Transformers/GrowTransformer.d.ts +16 -0
- package/dist/types/Transformers/RainbowTransformer.d.ts +17 -0
- package/dist/types/Transformers/SineWaveTransformer.d.ts +17 -0
- package/dist/types/Transformers/Transformer.d.ts +17 -0
- package/dist/types/Types/core.d.ts +104 -0
- package/dist/types/Types/diagnostics.d.ts +85 -0
- package/dist/types/Types/index.d.ts +11 -0
- package/dist/types/Types/operations.d.ts +109 -0
- package/dist/types/Types/queries.d.ts +67 -0
- package/dist/types/Types/symbols.d.ts +42 -0
- package/dist/types/Types/tokens.d.ts +75 -0
- package/dist/types/Utils/BBCodeGenerator.d.ts +21 -0
- package/dist/types/Utils/ColorMath.d.ts +92 -0
- package/dist/types/Utils/EffectMath.d.ts +643 -0
- package/dist/types/Utils/TagVocabulary.d.ts +104 -0
- package/dist/types/Utils/TagVocabulary.test.d.ts +1 -0
- package/dist/types/Utils/color.d.ts +29 -0
- package/dist/types/Utils/dom-to-svg.d.ts +28 -0
- package/dist/types/Utils/dom-to-svg.test.d.ts +1 -0
- package/dist/types/Utils/treeTransformers.d.ts +160 -0
- package/dist/types/Visitors/BBBlocksExporter.d.ts +27 -0
- package/dist/types/Visitors/BBCodeExporter.d.ts +90 -0
- package/dist/types/Visitors/BlockPatcher.d.ts +91 -0
- package/dist/types/Visitors/DOMMorpher.d.ts +19 -0
- package/dist/types/Visitors/HTMLRenderer.d.ts +492 -0
- package/dist/types/Visitors/JSONExporter.d.ts +42 -0
- package/dist/types/Visitors/MarkdownExporter.d.ts +28 -0
- package/dist/types/Visitors/SVGRenderer.d.ts +16 -0
- package/dist/types/Visitors/TiptapExporter.d.ts +40 -0
- package/dist/types/Visitors/Visitor.d.ts +35 -0
- package/dist/types/Visitors/index.d.ts +9 -0
- package/dist/types/Visuals/BoxDrawer.d.ts +54 -0
- package/dist/types/Visuals/LyneAudio.d.ts +8 -0
- package/dist/types/Visuals/index.d.ts +39 -0
- package/dist/types/index.d.ts +155 -0
- package/package.json +14 -10
- package/src/Analysis/Passes/Analysis/ColorUsageAnalyzer.ts +103 -0
- package/src/Analysis/Passes/Analysis/GradientAnalyzer.ts +294 -20
- package/src/Analysis/Passes/Analysis/SymbolAnalyzer.ts +257 -0
- package/src/Analysis/Passes/Decision/PaletteRemapDecision.ts +425 -0
- package/src/Analysis/Pipeline/Pipeline.ts +15 -2
- package/src/Analysis/index.ts +8 -2
- package/src/BBCode/BBCodeDocumentModel.ts +39 -1
- package/src/BBCode/BBCodeToGreenNode.ts +18 -12
- package/src/BBCode/Parser.ts +38 -1
- package/src/Edits/EditPlan.ts +290 -0
- package/src/Edits/Optimizer.ts +185 -0
- package/src/Edits/Rules/Rule.ts +145 -0
- package/src/Edits/Rules/dropEmptyTags.ts +110 -0
- package/src/Edits/Rules/dropRedundantNesting.ts +120 -0
- package/src/Edits/Rules/index.ts +28 -0
- package/src/Edits/Rules/mergeAdjacent.ts +224 -0
- package/src/Edits/Rules/reorderWrappers.ts +154 -0
- package/src/Edits/Rules/shortenHex.ts +79 -0
- package/src/Edits/Rules/tagValue.ts +105 -0
- package/src/Edits/Rules/unwrapInvisibleColor.ts +93 -0
- package/src/Edits/applyEdits.ts +54 -0
- package/src/Edits/index.ts +22 -0
- package/src/Events/EventBus.ts +18 -0
- package/src/HTML/HTMLToGreenNode.ts +193 -37
- package/src/Incremental/BracketIndex.ts +249 -0
- package/src/Incremental/IncrementalParser.ts +464 -41
- package/src/Lexer/BBCodeLexer.ts +25 -3
- package/src/Lexer/index.ts +1 -1
- package/src/Markdown/MarkdownAST.ts +65 -2
- package/src/Markdown/MarkdownLexer.ts +69 -14
- package/src/Markdown/MarkdownParser.ts +749 -62
- package/src/Markdown/MarkdownToGreenNode.ts +148 -27
- package/src/MilHibri/MilHibriDocumentModel.ts +56 -0
- package/src/Model/DocumentModel.ts +138 -5
- package/src/Model/TagRegistry.ts +129 -134
- package/src/Reconciler/SurgicalReconciler.ts +460 -0
- package/src/Repair/NestingRepair.ts +116 -0
- package/src/Repair/index.ts +1 -0
- package/src/Semantic/SemanticAnalyzer.ts +1845 -65
- package/src/Syntax/GreenNodePool.ts +12 -12
- package/src/Syntax/RedNode.ts +17 -3
- package/src/Syntax/RedNodeStore.ts +9 -1
- package/src/Syntax/nodeAttr.ts +172 -0
- package/src/Tokens/TokenResolver.ts +55 -0
- package/src/Tokens/index.ts +1 -0
- package/src/Types/core.ts +15 -0
- package/src/Utils/ColorMath.ts +276 -55
- package/src/Utils/EffectMath.ts +2462 -0
- package/src/Utils/TagVocabulary.ts +141 -0
- package/src/Utils/dom-to-svg.ts +28 -12
- package/src/Visitors/BBBlocksExporter.ts +15 -1
- package/src/Visitors/BBCodeExporter.ts +365 -32
- package/src/Visitors/BlockPatcher.ts +123 -22
- package/src/Visitors/DOMMorpher.ts +44 -28
- package/src/Visitors/HTMLRenderer.ts +771 -205
- package/src/Visitors/MarkdownExporter.ts +98 -41
- package/src/Visitors/TiptapExporter.ts +1 -0
- package/src/Visitors/index.ts +1 -1
- package/src/Visuals/BoxDrawer.ts +56 -10
- package/src/Visuals/LyneAudio.ts +346 -0
- package/src/Visuals/index.ts +8 -4
- package/src/Visuals/lyne.css +374 -9
- package/src/Visuals/osu.css +393 -11
- package/src/index.ts +178 -8
- package/dist/index.d.mts +0 -4612
- package/dist/index.d.ts +0 -4612
- package/src/Analysis/Passes/Analysis/__tests__/GradientAnalyzer.test.ts +0 -135
- package/src/Analysis/Passes/Analysis/__tests__/MergeableColorAnalyzer.test.ts +0 -84
- package/src/Analysis/Passes/Analysis/__tests__/RainbowAnalyzer.test.ts +0 -99
- package/src/Analysis/Passes/Analysis/__tests__/WaveAnalyzer.test.ts +0 -119
- package/src/Analysis/Passes/Decision/__tests__/DefaultDecision.test.ts +0 -179
- package/src/Analysis/__tests__/Integration.test.ts +0 -162
- package/src/Analysis/__tests__/Pipeline.test.ts +0 -133
- package/src/Diff/__tests__/TreeDiffer.test.ts +0 -65
- package/src/Incremental/__tests__/IncrementalParser.test.ts +0 -164
- package/src/Syntax/__tests__/GreenNode.test.ts +0 -33
- package/src/Syntax/__tests__/RedNode.test.ts +0 -81
- package/src/Syntax/__tests__/RedNodeStore.test.ts +0 -104
- package/src/Tests/ASTOptimizerIdempotence.test.ts +0 -77
- package/src/Tests/BlockPatcher.test.ts +0 -437
- package/src/Tests/BlockPatcherWindowed.test.ts +0 -364
- package/src/Tests/BoxDrawer.test.ts +0 -217
- package/src/Tests/BoxRichTitle.test.ts +0 -105
- package/src/Tests/Chars500kBenchmark.test.ts +0 -151
- package/src/Tests/Chars500kEdits.test.ts +0 -321
- package/src/Tests/CollabPositions.test.ts +0 -146
- package/src/Tests/CompilerPathProfiling.test.ts +0 -186
- package/src/Tests/DOMMorpher.test.ts +0 -142
- package/src/Tests/DomPatchPerf.test.ts +0 -60
- package/src/Tests/EffectSegments.snapshot.json +0 -616
- package/src/Tests/EffectSegments.test.ts +0 -68
- package/src/Tests/FindNodeAtOffset.test.ts +0 -65
- package/src/Tests/Fuzzer.test.ts +0 -166
- package/src/Tests/GreenNodePool.test.ts +0 -153
- package/src/Tests/Lexer.test.ts +0 -238
- package/src/Tests/LyneMode.test.ts +0 -291
- package/src/Tests/ModelCoherence.test.ts +0 -180
- package/src/Tests/Partition.test.ts +0 -238
- package/src/Tests/PluginTags.test.ts +0 -150
- package/src/Tests/ProblematicSection.test.ts +0 -46
- package/src/Tests/ProblematicSectionHTML.test.ts +0 -58
- package/src/Tests/RedReuse.test.ts +0 -134
- package/src/Tests/ReproDelete20k.test.ts +0 -62
- package/src/Tests/SemanticValidators.test.ts +0 -136
- package/src/Tests/StableNodeIds.test.ts +0 -210
- package/src/Tests/StudioColorBloat.test.ts +0 -25
- package/src/Tests/StudioDebugText.test.ts +0 -27
- package/src/Tests/StudioTrailingChar.test.ts +0 -25
- package/src/Tests/StudioValidText.test.ts +0 -25
- package/src/Tests/UrlImgBug.test.ts +0 -23
- package/src/Tests/VisualBuilderFidelity.test.ts +0 -105
- package/src/Tests/referenceDocument.ts +0 -119
- package/src/Utils/dom-to-svg.test.ts +0 -86
package/dist/Visuals/osu.css
CHANGED
|
@@ -33,6 +33,28 @@
|
|
|
33
33
|
color: #94C8EA;
|
|
34
34
|
border-bottom: 1px solid rgba(126,184,224,0.7);
|
|
35
35
|
}
|
|
36
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a:has(img),
|
|
37
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a:has(.bb-img),
|
|
38
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a:has(svg),
|
|
39
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a.bb-link-img {
|
|
40
|
+
border-bottom: none !important;
|
|
41
|
+
text-decoration: none !important;
|
|
42
|
+
display: inline-block;
|
|
43
|
+
vertical-align: middle;
|
|
44
|
+
}
|
|
45
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a:has(img):hover,
|
|
46
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a:has(.bb-img):hover,
|
|
47
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a:has(svg):hover,
|
|
48
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a.bb-link-img:hover {
|
|
49
|
+
border-bottom: none !important;
|
|
50
|
+
text-decoration: none !important;
|
|
51
|
+
}
|
|
52
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a img,
|
|
53
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) a .bb-img {
|
|
54
|
+
vertical-align: middle;
|
|
55
|
+
border: none;
|
|
56
|
+
text-decoration: none;
|
|
57
|
+
}
|
|
36
58
|
|
|
37
59
|
/* ─── Headings ───────────────────────────────────────── */
|
|
38
60
|
|
|
@@ -51,7 +73,7 @@
|
|
|
51
73
|
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) blockquote {
|
|
52
74
|
padding: 0 0 0 20px;
|
|
53
75
|
margin: 0 0 20px 0;
|
|
54
|
-
border-left: 2px solid
|
|
76
|
+
border-left: 2px solid var(--osu-accent);
|
|
55
77
|
color: #ffffff;
|
|
56
78
|
font-style: normal;
|
|
57
79
|
background: none;
|
|
@@ -61,8 +83,8 @@
|
|
|
61
83
|
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) pre {
|
|
62
84
|
padding: 10px;
|
|
63
85
|
margin-bottom: 10px;
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
86
|
+
background: var(--osu-code-bg);
|
|
87
|
+
border: 1px solid var(--osu-code-border);
|
|
66
88
|
border-radius: 8px;
|
|
67
89
|
overflow-x: auto;
|
|
68
90
|
}
|
|
@@ -99,13 +121,22 @@
|
|
|
99
121
|
/* ─── Spoiler ────────────────────────────────────────── */
|
|
100
122
|
|
|
101
123
|
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .spoiler {
|
|
102
|
-
background: #
|
|
103
|
-
color: #
|
|
104
|
-
cursor:
|
|
124
|
+
background: #111111;
|
|
125
|
+
color: #111111;
|
|
126
|
+
cursor: pointer;
|
|
127
|
+
padding: 0 4px;
|
|
128
|
+
border-radius: 3px;
|
|
129
|
+
user-select: text;
|
|
130
|
+
transition: background 0.15s ease, color 0.15s ease;
|
|
131
|
+
}
|
|
132
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .spoiler:hover,
|
|
133
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .spoiler:active {
|
|
134
|
+
color: #ffffff;
|
|
135
|
+
background: #333333;
|
|
105
136
|
}
|
|
106
137
|
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .spoiler::selection {
|
|
107
|
-
color: #
|
|
108
|
-
background: #
|
|
138
|
+
color: #ffffff;
|
|
139
|
+
background: #555555;
|
|
109
140
|
}
|
|
110
141
|
|
|
111
142
|
/* ─── Box / Spoilerbox ───────────────────────────────── */
|
|
@@ -119,7 +150,7 @@
|
|
|
119
150
|
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) details summary {
|
|
120
151
|
cursor: pointer;
|
|
121
152
|
font-weight: 600;
|
|
122
|
-
color:
|
|
153
|
+
color: var(--osu-accent);
|
|
123
154
|
font-size: 13px;
|
|
124
155
|
user-select: none;
|
|
125
156
|
}
|
|
@@ -145,7 +176,7 @@
|
|
|
145
176
|
display: list-item;
|
|
146
177
|
}
|
|
147
178
|
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) li::marker {
|
|
148
|
-
color:
|
|
179
|
+
color: var(--osu-accent);
|
|
149
180
|
}
|
|
150
181
|
|
|
151
182
|
/* ─── Media ──────────────────────────────────────────── */
|
|
@@ -164,7 +195,11 @@
|
|
|
164
195
|
border-radius: 8px;
|
|
165
196
|
}
|
|
166
197
|
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) audio {
|
|
198
|
+
/* inline-block: el preflight de Tailwind fuerza `audio{display:block}`
|
|
199
|
+
* y eso rompe el centrado por `text-align:center` de [centre]. */
|
|
200
|
+
display: inline-block;
|
|
167
201
|
width: 100%;
|
|
202
|
+
max-width: 420px;
|
|
168
203
|
}
|
|
169
204
|
|
|
170
205
|
/* ─── Image Map ──────────────────────────────────────── */
|
|
@@ -237,7 +272,106 @@
|
|
|
237
272
|
display: inline-block;
|
|
238
273
|
transform: rotate(-5deg) scale(0.95);
|
|
239
274
|
font-style: italic;
|
|
240
|
-
color:
|
|
275
|
+
color: var(--osu-bloom);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/* ─── Semantic Spacing ───────────────────────────────── */
|
|
279
|
+
|
|
280
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode-sp {
|
|
281
|
+
display: block;
|
|
282
|
+
height: 0;
|
|
283
|
+
min-height: 0;
|
|
284
|
+
margin: 0;
|
|
285
|
+
padding: 0;
|
|
286
|
+
}
|
|
287
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode-para {
|
|
288
|
+
display: block;
|
|
289
|
+
height: 1em;
|
|
290
|
+
min-height: 12px;
|
|
291
|
+
padding: 0;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/* ─── Vocabulario de clases del dialecto osu ──────────────────────────────
|
|
295
|
+
*
|
|
296
|
+
* Con `dialect: 'osu'` el renderer emite los nombres de clase reales de osu!
|
|
297
|
+
* (`well`, `js-spoilerbox`, `imagemap__link`, …) en vez de los de Miliastry
|
|
298
|
+
* (`notice`, `imagemap-container`, …). Sobre osu.ppy.sh eso basta: su propia
|
|
299
|
+
* hoja los pinta. Fuera de ahí —el preview de la app, el HTML autónomo de
|
|
300
|
+
* `scripts/osu-inject.ts`— no hay nadie, y estas reglas son ese nadie.
|
|
301
|
+
*
|
|
302
|
+
* ── Un solo parámetro, como osu ──────────────────────────────────────
|
|
303
|
+
*
|
|
304
|
+
* osu! no hardcodea sus colores: define `--base-hue` y deriva todo con
|
|
305
|
+
* `hsl()`, porque el usuario elige el tono de su tema. Medirlos y copiar el
|
|
306
|
+
* resultado congelaría UN tema concreto. Así que aquí se reproduce la
|
|
307
|
+
* mecánica, no la foto: los pares saturación/luminosidad son fijos por rol
|
|
308
|
+
* (la familia `b` es fondo al 10%, la `l` enlaces al 40%) y el tono entra por
|
|
309
|
+
* variable.
|
|
310
|
+
*
|
|
311
|
+
* `var(--base-hue, 338)` consume el tono del documento cuando existe —en la
|
|
312
|
+
* página real de osu existe, y ahí gana el del usuario— y si no cae a 338.
|
|
313
|
+
*
|
|
314
|
+
* Ese respaldo NO es el tono de osu (253), y es deliberado: esta hoja se
|
|
315
|
+
* consume sobre todo DENTRO de Miliastry, cuyo modo osu tiene fondo rosado
|
|
316
|
+
* (`#2a1f23`, tono 338) y acento `--accent-pink` (~332). Cayendo al 253 se
|
|
317
|
+
* mezclaban morados de osu sobre un fondo rosa nuestro, que se veía «casi
|
|
318
|
+
* bien» y por eso no saltaba. Un host puede fijar `--base-hue` para forzar
|
|
319
|
+
* otro.
|
|
320
|
+
*
|
|
321
|
+
* Las reglas de arriba (`.notice`, `.imagemap-container`, `.imagemap-area`)
|
|
322
|
+
* siguen vivas: son los nombres que emiten los dialectos miliastry y lyne.
|
|
323
|
+
* Esta sección añade, no reemplaza.
|
|
324
|
+
*/
|
|
325
|
+
|
|
326
|
+
/* Qué sigue al tono y qué no: EL CONTENIDO SIGUE, LAS SEÑALES NO.
|
|
327
|
+
*
|
|
328
|
+
* Lo que el BBCode pinta —citas, listas, código, cajas, enlaces— se deriva de
|
|
329
|
+
* `--osu-hue`, porque su color no significa nada por sí mismo: es la piel del
|
|
330
|
+
* documento. Lo que comunica un estado conserva su color fijo, porque ahí el
|
|
331
|
+
* color ES el mensaje: el rojo de `.media-error`, el negro sobre negro de
|
|
332
|
+
* `.spoiler` (que en osu es literalmente eso), el rosa de selección de las
|
|
333
|
+
* áreas de imagemap —una ayuda de edición, no contenido— y el degradado
|
|
334
|
+
* deliberadamente multicolor de `.sparkle`. Los blancos y los `rgba()`
|
|
335
|
+
* neutros tampoco: son veladuras, no color.
|
|
336
|
+
*
|
|
337
|
+
* Si vienes a "terminar el trabajo" convirtiendo los que quedan, esto es el
|
|
338
|
+
* porqué de que sigan ahí.
|
|
339
|
+
*/
|
|
340
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) {
|
|
341
|
+
--osu-hue: var(--base-hue, 338);
|
|
342
|
+
--osu-bg-deep: hsl(var(--osu-hue), 10%, 15%); /* fondo hundido */
|
|
343
|
+
--osu-border: hsl(var(--osu-hue), 10%, 40%); /* borde sobre ese fondo */
|
|
344
|
+
--osu-link: hsl(var(--osu-hue), 40%, 75%); /* enlaces, perfiles, cajas */
|
|
345
|
+
--osu-link-hi: hsl(var(--osu-hue), 40%, 80%); /* el mismo, al pasar */
|
|
346
|
+
--osu-text: hsl(var(--osu-hue), 40%, 100%); /* texto sobre fondo hundido */
|
|
347
|
+
|
|
348
|
+
/* ── La escalera real de osu ──────────────────────────────────────────
|
|
349
|
+
* Leída de su página en vivo (`--hsl-*` sobre `.bbcode`), no deducida:
|
|
350
|
+
* osu define --base-hue y estos pares de saturación/luminosidad, y su
|
|
351
|
+
* `bbcode.less` asigna un rol a cada elemento. Los cinco alias de arriba
|
|
352
|
+
* son estos mismos: bg-deep = b5, border = b1, link = l2, link-hi = l1,
|
|
353
|
+
* text = c1. Se nombran los roles aparte para poder citar la hoja de osu
|
|
354
|
+
* por su nombre cuando se ajusta un elemento concreto. */
|
|
355
|
+
--osu-b1: hsl(var(--osu-hue), 10%, 40%);
|
|
356
|
+
--osu-b5: hsl(var(--osu-hue), 10%, 15%);
|
|
357
|
+
--osu-b6: hsl(var(--osu-hue), 10%, 10%);
|
|
358
|
+
--osu-c2: hsl(var(--osu-hue), 40%, 90%);
|
|
359
|
+
--osu-l1: hsl(var(--osu-hue), 40%, 80%);
|
|
360
|
+
--osu-l3: hsl(var(--osu-hue), 40%, 70%);
|
|
361
|
+
|
|
362
|
+
/* El acento del cuerpo en el look de MILIASTRY: filo de las citas,
|
|
363
|
+
* marcador de lista, título de `details`. Era el literal `#D194B3`, que es
|
|
364
|
+
* exactamente hsl(330,40%,70%) — o sea `l3`. osu usa otros roles en esos
|
|
365
|
+
* mismos elementos; ver el bloque `[data-dialect="osu"]` más abajo. */
|
|
366
|
+
--osu-accent: var(--osu-l3);
|
|
367
|
+
/* Superficie del bloque de código y su filo, look de Miliastry. Eran
|
|
368
|
+
* `#1C1719` —hsl(336,10%,10%), que es `b6`— y `#43383A`. Este último
|
|
369
|
+
* estaba en el tono 349, fuera de la familia; al derivarlo se corrige. */
|
|
370
|
+
--osu-code-bg: var(--osu-b6);
|
|
371
|
+
--osu-code-border: hsl(var(--osu-hue), 9%, 24%);
|
|
372
|
+
/* Adorno `.flower`: era `#F0A0C0`, hsl(336,73%,78%). Es de Miliastry, osu
|
|
373
|
+
* no tiene nada parecido. */
|
|
374
|
+
--osu-bloom: hsl(var(--osu-hue), 73%, 78%);
|
|
241
375
|
}
|
|
242
376
|
|
|
243
377
|
/* ─── Semantic Spacing ───────────────────────────────── */
|
|
@@ -255,3 +389,251 @@
|
|
|
255
389
|
min-height: 12px;
|
|
256
390
|
padding: 0;
|
|
257
391
|
}
|
|
392
|
+
|
|
393
|
+
/* ─── Vocabulario de clases del dialecto osu ──────────────────────────────
|
|
394
|
+
*
|
|
395
|
+
* Con `dialect: 'osu'` el renderer emite los nombres de clase reales de osu!
|
|
396
|
+
* (`well`, `js-spoilerbox`, `imagemap__link`, …) en vez de los de Miliastry
|
|
397
|
+
* (`notice`, `imagemap-container`, …). Sobre osu.ppy.sh eso basta: su propia
|
|
398
|
+
* hoja los pinta. Fuera de ahí —el preview de la app, el HTML autónomo de
|
|
399
|
+
* `scripts/osu-inject.ts`— no hay nadie, y estas reglas son ese nadie.
|
|
400
|
+
*
|
|
401
|
+
* ── Un solo parámetro, como osu ──────────────────────────────────────
|
|
402
|
+
*
|
|
403
|
+
* osu! no hardcodea sus colores: define `--base-hue` y deriva todo con
|
|
404
|
+
* `hsl()`, porque el usuario elige el tono de su tema. Medirlos y copiar el
|
|
405
|
+
* resultado congelaría UN tema concreto. Así que aquí se reproduce la
|
|
406
|
+
* mecánica, no la foto: los pares saturación/luminosidad son fijos por rol
|
|
407
|
+
* (la familia `b` es fondo al 10%, la `l` enlaces al 40%) y el tono entra por
|
|
408
|
+
* variable.
|
|
409
|
+
*
|
|
410
|
+
* `var(--base-hue, 338)` consume el tono del documento cuando existe —en la
|
|
411
|
+
* página real de osu existe, y ahí gana el del usuario— y si no cae a 338.
|
|
412
|
+
*
|
|
413
|
+
* Ese respaldo NO es el tono de osu (253), y es deliberado: esta hoja se
|
|
414
|
+
* consume sobre todo DENTRO de Miliastry, cuyo modo osu tiene fondo rosado
|
|
415
|
+
* (`#2a1f23`, tono 338) y acento `--accent-pink` (~332). Cayendo al 253 se
|
|
416
|
+
* mezclaban morados de osu sobre un fondo rosa nuestro, que se veía «casi
|
|
417
|
+
* bien» y por eso no saltaba. Un host puede fijar `--base-hue` para forzar
|
|
418
|
+
* otro.
|
|
419
|
+
*
|
|
420
|
+
* Las reglas de arriba (`.notice`, `.imagemap-container`, `.imagemap-area`)
|
|
421
|
+
* siguen vivas: son los nombres que emiten los dialectos miliastry y lyne.
|
|
422
|
+
* Esta sección añade, no reemplaza.
|
|
423
|
+
*/
|
|
424
|
+
|
|
425
|
+
/* Qué sigue al tono y qué no: EL CONTENIDO SIGUE, LAS SEÑALES NO.
|
|
426
|
+
*
|
|
427
|
+
* Lo que el BBCode pinta —citas, listas, código, cajas, enlaces— se deriva de
|
|
428
|
+
* `--osu-hue`, porque su color no significa nada por sí mismo: es la piel del
|
|
429
|
+
* documento. Lo que comunica un estado conserva su color fijo, porque ahí el
|
|
430
|
+
* color ES el mensaje: el rojo de `.media-error`, el negro sobre negro de
|
|
431
|
+
* `.spoiler` (que en osu es literalmente eso), el rosa de selección de las
|
|
432
|
+
* áreas de imagemap —una ayuda de edición, no contenido— y el degradado
|
|
433
|
+
* deliberadamente multicolor de `.sparkle`. Los blancos y los `rgba()`
|
|
434
|
+
* neutros tampoco: son veladuras, no color.
|
|
435
|
+
*
|
|
436
|
+
* Si vienes a "terminar el trabajo" convirtiendo los que quedan, esto es el
|
|
437
|
+
* porqué de que sigan ahí.
|
|
438
|
+
*/
|
|
439
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) {
|
|
440
|
+
--osu-hue: var(--base-hue, 338);
|
|
441
|
+
--osu-bg-deep: hsl(var(--osu-hue), 10%, 15%); /* fondo hundido */
|
|
442
|
+
--osu-border: hsl(var(--osu-hue), 10%, 40%); /* borde sobre ese fondo */
|
|
443
|
+
--osu-link: hsl(var(--osu-hue), 40%, 75%); /* enlaces, perfiles, cajas */
|
|
444
|
+
--osu-link-hi: hsl(var(--osu-hue), 40%, 80%); /* el mismo, al pasar */
|
|
445
|
+
--osu-text: hsl(var(--osu-hue), 40%, 100%); /* texto sobre fondo hundido */
|
|
446
|
+
|
|
447
|
+
/* El acento del cuerpo: filo de las citas, marcador de lista, título de
|
|
448
|
+
* `details`. Era el literal `#D194B3`, que es exactamente hsl(330,40%,70%). */
|
|
449
|
+
--osu-accent: hsl(var(--osu-hue), 40%, 70%);
|
|
450
|
+
/* Superficie del bloque de código y su filo. Eran `#1C1719` —hsl(336,10%,10%)—
|
|
451
|
+
* y `#43383A`. Este último estaba en el tono 349, fuera de la familia; al
|
|
452
|
+
* derivarlo del tono se corrige de paso. */
|
|
453
|
+
--osu-code-bg: hsl(var(--osu-hue), 10%, 10%);
|
|
454
|
+
--osu-code-border: hsl(var(--osu-hue), 9%, 24%);
|
|
455
|
+
/* Adorno `.flower`: era `#F0A0C0`, hsl(336,73%,78%). */
|
|
456
|
+
--osu-bloom: hsl(var(--osu-hue), 73%, 78%);
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/* Los enlaces de osu son del mismo morado que los perfiles, no azules. El
|
|
460
|
+
* azul de la sección base es el look de Miliastry, así que sólo se pisa
|
|
461
|
+
* cuando el preview declara el dialecto osu. */
|
|
462
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne)[data-dialect="osu"] a { color: var(--osu-link); }
|
|
463
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne)[data-dialect="osu"] a:hover { color: var(--osu-link-hi); border-bottom-color: var(--osu-link-hi); }
|
|
464
|
+
|
|
465
|
+
/* ── Roles de osu para el cuerpo del documento ────────────────────────────
|
|
466
|
+
* Fuente: `resources/css/bbcode.less` de osu-web, cruzada con la escalera
|
|
467
|
+
* medida en su página. Estos elementos tienen en Miliastry el acento rosa
|
|
468
|
+
* (`--osu-accent`), que es el look de la casa; bajo el dialecto osu mandan
|
|
469
|
+
* los roles de osu, igual que ya pasa arriba con los enlaces.
|
|
470
|
+
*/
|
|
471
|
+
|
|
472
|
+
/* La cita no lleva acento: el texto Y la barra son `c2`, y la barra la pinta
|
|
473
|
+
* osu con un ::before de 2px redondeado. El borde izquierdo da el mismo
|
|
474
|
+
* resultado a esta anchura. */
|
|
475
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne)[data-dialect="osu"] blockquote {
|
|
476
|
+
color: var(--osu-c2);
|
|
477
|
+
border-left-color: var(--osu-c2);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
/* El bloque de código es `b5` y NO lleva borde. El nuestro usaba `b6` con un
|
|
481
|
+
* filo, que es más oscuro y más marcado que el de osu. */
|
|
482
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne)[data-dialect="osu"] pre {
|
|
483
|
+
background: var(--osu-b5);
|
|
484
|
+
border: none;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/* El código en línea también es `b5`, plano: ni veladura blanca ni filo. */
|
|
488
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne)[data-dialect="osu"] code.inline {
|
|
489
|
+
background: var(--osu-b5);
|
|
490
|
+
border: none;
|
|
491
|
+
padding: 1px 4px;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
/* `[heading]` no es blanco en osu, es `l1`. */
|
|
495
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne)[data-dialect="osu"] h2 {
|
|
496
|
+
color: var(--osu-l1);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
/* osu no le da color al marcador de lista: hereda el del texto. El rosa es
|
|
500
|
+
* cosa nuestra. */
|
|
501
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne)[data-dialect="osu"] li::marker {
|
|
502
|
+
color: inherit;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/* El spoiler de osu es negro puro sobre negro puro, no un gris. */
|
|
506
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne)[data-dialect="osu"] .spoiler {
|
|
507
|
+
background: #000;
|
|
508
|
+
color: #000;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/* Notice — osu lo llama `well` */
|
|
512
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .well {
|
|
513
|
+
padding: 19px;
|
|
514
|
+
border: 2px solid var(--osu-border);
|
|
515
|
+
border-radius: 4px;
|
|
516
|
+
background: var(--osu-bg-deep);
|
|
517
|
+
color: var(--osu-text);
|
|
518
|
+
text-align: center;
|
|
519
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/* Spoilerbox — estructura div > a(icono + texto) + div(cuerpo) */
|
|
523
|
+
/* osu no le pone caja propia al contenedor: el `margin: 8px 0` que trae
|
|
524
|
+
* `features/BBCode/styles.css` para el look de Miliastry sumaba 16px por
|
|
525
|
+
* caja (19 en una userpage real). Se declara a cero en vez de confiar en
|
|
526
|
+
* la especificidad, que aquí sólo ganaba en `display`. */
|
|
527
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode-spoilerbox { display: block; margin: 0; padding: 0; }
|
|
528
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode-spoilerbox__link {
|
|
529
|
+
display: inline-flex;
|
|
530
|
+
align-items: center;
|
|
531
|
+
color: var(--osu-link);
|
|
532
|
+
font-weight: 700;
|
|
533
|
+
text-decoration: none;
|
|
534
|
+
cursor: pointer;
|
|
535
|
+
/* osu lo deja al 100%; `features/BBCode/styles.css` lo baja a 0.85em para el
|
|
536
|
+
* look de Miliastry. Bajo este dialecto manda el de osu. */
|
|
537
|
+
font-size: 1em;
|
|
538
|
+
line-height: inherit;
|
|
539
|
+
/* Un `inline-flex` se alinea sobre la línea base del texto, así que el
|
|
540
|
+
* navegador reserva hueco para los descendentes DEBAJO y la caja crece de
|
|
541
|
+
* 21px a 26px. osu no lo sufre porque su icono es un glifo de fuente, que
|
|
542
|
+
* aporta una línea base real; el nuestro es un triángulo CSS sin texto y la
|
|
543
|
+
* base se sintetiza desde el borde inferior. Alinear arriba elimina el
|
|
544
|
+
* hueco: el enlace es el único contenido de su línea, así que `top` no
|
|
545
|
+
* cambia nada más. Medido: 26px -> 21px, que es lo que mide en osu. */
|
|
546
|
+
vertical-align: top;
|
|
547
|
+
}
|
|
548
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode-spoilerbox__link:hover { color: var(--osu-link-hi); border-bottom: none; }
|
|
549
|
+
|
|
550
|
+
/* El icono de osu es un glifo de Font Awesome 5, que no distribuimos. Este es
|
|
551
|
+
* un triángulo CSS equivalente: apunta a la derecha cerrado y rota al abrir.
|
|
552
|
+
* osu cambia de glifo en vez de rotar; el efecto leído es el mismo. Hereda
|
|
553
|
+
* `currentColor`, así que sigue al tono sin declarar nada. */
|
|
554
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode-spoilerbox__link-icon {
|
|
555
|
+
display: block;
|
|
556
|
+
position: relative;
|
|
557
|
+
flex: none;
|
|
558
|
+
width: 20px;
|
|
559
|
+
height: 21px;
|
|
560
|
+
}
|
|
561
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode-spoilerbox__link-icon::before {
|
|
562
|
+
content: "";
|
|
563
|
+
position: absolute;
|
|
564
|
+
top: 50%;
|
|
565
|
+
left: 5px;
|
|
566
|
+
width: 0;
|
|
567
|
+
height: 0;
|
|
568
|
+
border-left: 5px solid currentColor;
|
|
569
|
+
border-top: 4px solid transparent;
|
|
570
|
+
border-bottom: 4px solid transparent;
|
|
571
|
+
transform: translateY(-50%);
|
|
572
|
+
transform-origin: 2px 50%;
|
|
573
|
+
transition: transform 0.12s ease;
|
|
574
|
+
}
|
|
575
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .js-spoilerbox--open .bbcode-spoilerbox__link-icon::before {
|
|
576
|
+
transform: translateY(-50%) rotate(90deg);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
/* El cuerpo arranca oculto. Lo abre la clase `js-spoilerbox--open` en el
|
|
580
|
+
* CONTENEDOR, que pone `bindBoxDrawer`. */
|
|
581
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode-spoilerbox__body {
|
|
582
|
+
display: none;
|
|
583
|
+
margin: 10px 0 0;
|
|
584
|
+
padding: 0 0 0 20px;
|
|
585
|
+
}
|
|
586
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .js-spoilerbox--open > .bbcode-spoilerbox__body { display: block; }
|
|
587
|
+
|
|
588
|
+
/* Imagemap — el contenedor ancla; los enlaces van absolutos con el
|
|
589
|
+
* left/top/width/height en % que el renderer escribe en el style inline.
|
|
590
|
+
* Sin el `position: relative` los enlaces caen al flujo. */
|
|
591
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .imagemap {
|
|
592
|
+
display: inline-block;
|
|
593
|
+
position: relative;
|
|
594
|
+
max-width: max-content;
|
|
595
|
+
}
|
|
596
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .imagemap__image {
|
|
597
|
+
display: inline;
|
|
598
|
+
max-width: 100%;
|
|
599
|
+
vertical-align: middle;
|
|
600
|
+
}
|
|
601
|
+
/* Transparentes en reposo, como en osu. El realce al pasar por encima es
|
|
602
|
+
* nuestro: en un editor conviene ver dónde están las áreas, y no altera la
|
|
603
|
+
* apariencia estática. */
|
|
604
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .imagemap__link {
|
|
605
|
+
display: block;
|
|
606
|
+
position: absolute;
|
|
607
|
+
box-sizing: border-box;
|
|
608
|
+
border-radius: 4px;
|
|
609
|
+
text-decoration: none;
|
|
610
|
+
transition: background-color 0.08s linear, box-shadow 0.08s linear;
|
|
611
|
+
}
|
|
612
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .imagemap__link:hover {
|
|
613
|
+
background: hsl(var(--osu-hue), 40%, 75%, 0.22);
|
|
614
|
+
box-shadow: inset 0 0 0 1.5px var(--osu-link);
|
|
615
|
+
border-bottom: none;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
/* Alineación */
|
|
619
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode__align-centre { display: block; text-align: center; }
|
|
620
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode__align-left { display: block; text-align: left; }
|
|
621
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .bbcode__align-right { display: block; text-align: right; }
|
|
622
|
+
|
|
623
|
+
/* Perfil */
|
|
624
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .user-name {
|
|
625
|
+
display: inline;
|
|
626
|
+
color: var(--osu-link);
|
|
627
|
+
font-weight: 700;
|
|
628
|
+
text-decoration: none;
|
|
629
|
+
}
|
|
630
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .user-name:hover { color: var(--osu-link-hi); border-bottom: none; }
|
|
631
|
+
|
|
632
|
+
/* YouTube */
|
|
633
|
+
.bbcode-preview:not(.bbcode-preview-lyne):not(.theme-lyne) .u-embed-wide--bbcode {
|
|
634
|
+
display: inline-block;
|
|
635
|
+
width: 100%;
|
|
636
|
+
max-width: 425px;
|
|
637
|
+
aspect-ratio: 16 / 9;
|
|
638
|
+
border: 0;
|
|
639
|
+
}
|