neo.mjs 6.10.3 → 6.10.5
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/apps/ServiceWorker.mjs +2 -2
- package/apps/form/model/SideNav.mjs +3 -3
- package/apps/form/view/SideNavList.mjs +8 -3
- package/apps/form/view/ViewportController.mjs +6 -7
- package/apps/portal/Overwrites.mjs +21 -0
- package/apps/portal/app.mjs +7 -0
- package/apps/portal/data/blog.json +743 -0
- package/apps/portal/index.html +15 -0
- package/apps/portal/model/BlogPost.mjs +59 -0
- package/apps/{learnneo → portal}/model/Content.mjs +3 -3
- package/apps/{learnneo → portal}/neo-config.json +1 -1
- package/apps/portal/store/BlogPosts.mjs +43 -0
- package/apps/{learnneo → portal}/store/Content.mjs +2 -5
- package/apps/portal/view/HeaderToolbar.mjs +65 -0
- package/apps/portal/view/Viewport.mjs +59 -0
- package/apps/portal/view/ViewportController.mjs +79 -0
- package/apps/portal/view/blog/Container.mjs +50 -0
- package/apps/portal/view/blog/List.mjs +173 -0
- package/apps/{newwebsite/view/Viewport.mjs → portal/view/home/MainContainer.mjs} +7 -8
- package/apps/{learnneo/view/home → portal/view/learn}/ContentTreeList.mjs +6 -6
- package/apps/{learnneo/view/home → portal/view/learn}/ContentView.mjs +3 -3
- package/apps/{learnneo/view → portal/view/learn}/LivePreview.mjs +32 -19
- package/apps/{learnneo/view/home → portal/view/learn}/MainContainer.mjs +27 -31
- package/apps/{learnneo/view/home → portal/view/learn}/MainContainerController.mjs +3 -3
- package/apps/{learnneo/view/home → portal/view/learn}/MainContainerModel.mjs +3 -3
- package/apps/website/Overwrites.mjs +16 -0
- package/apps/website/app.mjs +2 -1
- package/apps/website/view/blog/List.mjs +1 -1
- package/buildScripts/webpack/development/webpack.config.appworker.mjs +3 -1
- package/buildScripts/webpack/json/myApps.template.json +1 -1
- package/buildScripts/webpack/production/webpack.config.appworker.mjs +3 -1
- package/examples/ServiceWorker.mjs +2 -2
- package/package.json +2 -2
- package/resources/data/deck/learnneo/p/stylesheet.md +4 -1
- package/resources/design-tokens/json/component.json +22 -0
- package/resources/design-tokens/json/core.json +4 -0
- package/resources/design-tokens/json/semantic.json +8 -0
- package/resources/examples/data/formSideNav.json +19 -19
- package/resources/scss/src/apps/portal/blog/Container.scss +18 -0
- package/resources/scss/src/apps/portal/blog/List.scss +183 -0
- package/resources/scss/src/apps/{newwebsite/Viewport.scss → portal/home/MainContainer.scss} +1 -1
- package/resources/scss/src/tab/Strip.scss +1 -0
- package/resources/scss/src/tooltip/Base.scss +10 -6
- package/resources/scss/theme-dark/tooltip/Base.scss +10 -0
- package/resources/scss/theme-light/tooltip/Base.scss +10 -0
- package/resources/scss/theme-neo-light/button/Base.scss +24 -20
- package/resources/scss/theme-neo-light/design-tokens/Component.scss +6 -0
- package/resources/scss/theme-neo-light/design-tokens/Core.scss +2 -0
- package/resources/scss/theme-neo-light/design-tokens/Semantic.scss +4 -2
- package/resources/scss/theme-neo-light/tab/header/Button.scss +8 -7
- package/resources/scss/theme-neo-light/tooltip/Base.scss +13 -0
- package/src/DefaultConfig.mjs +2 -2
- package/src/Main.mjs +1 -1
- package/src/component/Base.mjs +5 -0
- package/src/component/Toast.mjs +5 -2
- package/src/container/Base.mjs +14 -0
- package/src/controller/Application.mjs +2 -1
- package/src/controller/Base.mjs +14 -3
- package/src/controller/Component.mjs +1 -1
- package/src/core/Base.mjs +7 -5
- package/src/core/Observable.mjs +15 -15
- package/src/data/RecordFactory.mjs +3 -3
- package/src/form/Container.mjs +50 -0
- package/src/form/field/Text.mjs +2 -2
- package/src/form/field/TextArea.mjs +5 -0
- package/src/main/addon/WindowPosition.mjs +72 -34
- package/src/tab/Strip.mjs +21 -36
- package/src/tab/header/Button.mjs +5 -7
- package/src/worker/App.mjs +26 -1
- package/src/worker/Base.mjs +41 -29
- package/src/worker/Canvas.mjs +4 -4
- package/src/worker/Manager.mjs +4 -3
- package/src/worker/mixin/RemoteMethodAccess.mjs +20 -18
- package/apps/learnneo/app.mjs +0 -6
- package/apps/learnneo/index.html +0 -21
- package/apps/learnneo/view/Viewport.mjs +0 -52
- package/apps/learnneo/view/ViewportController.mjs +0 -19
- package/apps/learnneo/view/home/HeaderToolbar.mjs +0 -47
- package/apps/newwebsite/app.mjs +0 -6
- package/apps/newwebsite/index.html +0 -13
- package/apps/newwebsite/neo-config.json +0 -7
- /package/resources/scss/src/apps/{learnneo/home → portal}/HeaderToolbar.scss +0 -0
- /package/resources/scss/src/apps/{learnneo → portal}/Viewport.scss +0 -0
- /package/resources/scss/src/apps/{learnneo/home → portal/learn}/ContentTreeList.scss +0 -0
- /package/resources/scss/src/apps/{learnneo/home → portal/learn}/ContentView.scss +0 -0
- /package/resources/scss/src/apps/{learnneo/home → portal/learn}/MainContainer.scss +0 -0
@@ -1,18 +1,18 @@
|
|
1
|
-
import Base
|
2
|
-
import TabContainer from '
|
3
|
-
import TextArea
|
1
|
+
import Base from '../../../../src/container/Base.mjs';
|
2
|
+
import TabContainer from '../../../../src/tab/Container.mjs';
|
3
|
+
import TextArea from '../../../../src/form/field/TextArea.mjs';
|
4
4
|
|
5
5
|
/**
|
6
|
-
* @class
|
6
|
+
* @class Portal.view.learn.LivePreview
|
7
7
|
* @extends Neo.container.Base
|
8
8
|
*/
|
9
9
|
class LivePreview extends Base {
|
10
10
|
static config = {
|
11
11
|
/**
|
12
|
-
* @member {String} className='
|
12
|
+
* @member {String} className='Portal.view.learn.LivePreview'
|
13
13
|
* @protected
|
14
14
|
*/
|
15
|
-
className: '
|
15
|
+
className: 'Portal.view.learn.LivePreview',
|
16
16
|
value_: null,
|
17
17
|
autoMount: true,
|
18
18
|
autoRender: true,
|
@@ -22,7 +22,9 @@ class LivePreview extends Base {
|
|
22
22
|
* @member {Object[]} items
|
23
23
|
*/
|
24
24
|
items: [{
|
25
|
-
module: TabContainer,
|
25
|
+
module : TabContainer,
|
26
|
+
reference: 'tab-container',
|
27
|
+
|
26
28
|
items: [{
|
27
29
|
module: TextArea,
|
28
30
|
hideLabel: true,
|
@@ -38,15 +40,7 @@ class LivePreview extends Base {
|
|
38
40
|
reference: 'preview',
|
39
41
|
ntype: 'container'
|
40
42
|
}]
|
41
|
-
}]
|
42
|
-
listeners: {
|
43
|
-
activeIndexChange: () => console.log('activeIndexChange')
|
44
|
-
}
|
45
|
-
}
|
46
|
-
onConstructed() {
|
47
|
-
console.log('constructed');
|
48
|
-
this.on('activeIndexChange', () => console.log('onConstructed'));
|
49
|
-
super.onConstructed();
|
43
|
+
}]
|
50
44
|
}
|
51
45
|
|
52
46
|
afterSetValue(value, oldValue) {
|
@@ -55,6 +49,14 @@ class LivePreview extends Base {
|
|
55
49
|
}
|
56
50
|
}
|
57
51
|
|
52
|
+
onConstructed() {
|
53
|
+
super.onConstructed();
|
54
|
+
|
55
|
+
let me = this;
|
56
|
+
|
57
|
+
me.getReference('tab-container').on('activeIndexChange', me.onActiveIndexChange, me)
|
58
|
+
}
|
59
|
+
|
58
60
|
doIt(button) {
|
59
61
|
let source = this.getReference('source').getValue();
|
60
62
|
|
@@ -92,7 +94,7 @@ class LivePreview extends Base {
|
|
92
94
|
});
|
93
95
|
var params = [];
|
94
96
|
var vars = [];
|
95
|
-
// Figure out the parts of the source we'll be running.
|
97
|
+
// Figure out the parts of the source we'll be running.
|
96
98
|
// o The promises/import() corresponding to the user's import statements
|
97
99
|
// o The vars holding the name of the imported module based on the module name for each import
|
98
100
|
// o The rest of the user-provided source
|
@@ -105,8 +107,8 @@ class LivePreview extends Base {
|
|
105
107
|
// const Button = ButtonModule.default;
|
106
108
|
// // Class declaration goes here...
|
107
109
|
// });
|
108
|
-
// Making the promise part of the eval seems weird, but it made it easier to
|
109
|
-
// set up the import vars.
|
110
|
+
// Making the promise part of the eval seems weird, but it made it easier to
|
111
|
+
// set up the import vars.
|
110
112
|
|
111
113
|
let promises = moduleNameAndPath.map(item => {
|
112
114
|
params.push(`${item.moduleName}Module`);
|
@@ -164,6 +166,17 @@ class LivePreview extends Base {
|
|
164
166
|
}
|
165
167
|
return null
|
166
168
|
}
|
169
|
+
|
170
|
+
/**
|
171
|
+
* @param {Object} data
|
172
|
+
* @param {Neo.component.Base} data.item
|
173
|
+
* @param {Number} data.oldValue
|
174
|
+
* @param {String} data.source
|
175
|
+
* @param {Number} data.value
|
176
|
+
*/
|
177
|
+
onActiveIndexChange(data) {
|
178
|
+
console.log('onActiveIndexChange', data)
|
179
|
+
}
|
167
180
|
}
|
168
181
|
|
169
182
|
Neo.applyClassConfig(LivePreview);
|
@@ -1,22 +1,21 @@
|
|
1
1
|
import Container from '../../../../src/container/Base.mjs';
|
2
2
|
import ContentView from './ContentView.mjs';
|
3
3
|
import ContentTreeList from './ContentTreeList.mjs';
|
4
|
-
import HeaderToolbar from './HeaderToolbar.mjs';
|
5
4
|
import MainContainerController from './MainContainerController.mjs';
|
6
5
|
import MainContainerModel from './MainContainerModel.mjs';
|
7
6
|
import Splitter from '../../../../src/component/Splitter.mjs';
|
8
7
|
|
9
8
|
/**
|
10
|
-
* @class
|
9
|
+
* @class Portal.view.learn.MainContainer
|
11
10
|
* @extends Neo.container.Base
|
12
11
|
*/
|
13
12
|
class MainContainer extends Container {
|
14
13
|
static config = {
|
15
14
|
/**
|
16
|
-
* @member {String} className='
|
15
|
+
* @member {String} className='Portal.view.learn.MainContainer'
|
17
16
|
* @protected
|
18
17
|
*/
|
19
|
-
className: '
|
18
|
+
className: 'Portal.view.learn.MainContainer',
|
20
19
|
/**
|
21
20
|
* @member {Neo.controller.Component} controller=MainContainerController
|
22
21
|
*/
|
@@ -29,38 +28,35 @@ class MainContainer extends Container {
|
|
29
28
|
* @member {Object[]} items
|
30
29
|
*/
|
31
30
|
items: [{
|
32
|
-
module:
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
31
|
+
module : Container,
|
32
|
+
layout : 'fit',
|
33
|
+
minWidth: 350,
|
34
|
+
width : 350,
|
35
|
+
cls : 'sidenav-container',
|
37
36
|
items: [{
|
38
|
-
module
|
39
|
-
|
40
|
-
minWidth: 350,
|
41
|
-
width : 350,
|
42
|
-
cls : 'sidenav-container',
|
43
|
-
items: [{
|
44
|
-
module : ContentTreeList,
|
45
|
-
reference: 'tree',
|
46
|
-
listeners: {
|
47
|
-
contentChange: 'onContentChange',
|
48
|
-
}
|
49
|
-
}]
|
50
|
-
}, {
|
51
|
-
module : Splitter,
|
52
|
-
cls : ['main-content-splitter'],
|
53
|
-
resizeTarget: 'previous',
|
54
|
-
size : 4
|
55
|
-
}, {
|
56
|
-
module : ContentView,
|
57
|
-
reference: 'content',
|
37
|
+
module : ContentTreeList,
|
38
|
+
reference: 'tree',
|
58
39
|
listeners: {
|
59
|
-
|
60
|
-
refresh: 'onContentRefresh'
|
40
|
+
contentChange: 'onContentChange',
|
61
41
|
}
|
62
42
|
}]
|
43
|
+
}, {
|
44
|
+
module : Splitter,
|
45
|
+
cls : ['main-content-splitter'],
|
46
|
+
resizeTarget: 'previous',
|
47
|
+
size : 4
|
48
|
+
}, {
|
49
|
+
module : ContentView,
|
50
|
+
reference: 'content',
|
51
|
+
listeners: {
|
52
|
+
edit : 'onContentEdit',
|
53
|
+
refresh: 'onContentRefresh'
|
54
|
+
}
|
63
55
|
}],
|
56
|
+
/**
|
57
|
+
* @member {Object} layout={ntype:'hbox',align:'stretch'}
|
58
|
+
*/
|
59
|
+
layout: {ntype: 'hbox', align: 'stretch'},
|
64
60
|
/**
|
65
61
|
* @member {Neo.model.Component} model=MainContainerModel
|
66
62
|
*/
|
@@ -1,16 +1,16 @@
|
|
1
1
|
import Controller from '../../../../src/controller/Component.mjs';
|
2
2
|
|
3
3
|
/**
|
4
|
-
* @class
|
4
|
+
* @class Portal.view.learn.MainContainerController
|
5
5
|
* @extends Neo.controller.Component
|
6
6
|
*/
|
7
7
|
class MainContainerController extends Controller {
|
8
8
|
static config = {
|
9
9
|
/**
|
10
|
-
* @member {String} className='
|
10
|
+
* @member {String} className='Portal.view.learn.MainContainerController'
|
11
11
|
* @protected
|
12
12
|
*/
|
13
|
-
className: '
|
13
|
+
className: 'Portal.view.learn.MainContainerController'
|
14
14
|
}
|
15
15
|
|
16
16
|
/**
|
@@ -2,16 +2,16 @@ import Component from '../../../../src/model/Component.mjs';
|
|
2
2
|
import Store from '../../store/Content.mjs';
|
3
3
|
|
4
4
|
/**
|
5
|
-
* @class
|
5
|
+
* @class Portal.view.learn.MainContainerModel
|
6
6
|
* @extends Neo.model.Component
|
7
7
|
*/
|
8
8
|
class MainContainerModel extends Component {
|
9
9
|
static config = {
|
10
10
|
/**
|
11
|
-
* @member {String} className='
|
11
|
+
* @member {String} className='Portal.view.learn.MainContainerModel'
|
12
12
|
* @protected
|
13
13
|
*/
|
14
|
-
className: '
|
14
|
+
className: 'Portal.view.learn.MainContainerModel',
|
15
15
|
/**
|
16
16
|
* @member {Object} data
|
17
17
|
*/
|
package/apps/website/app.mjs
CHANGED
@@ -125,7 +125,7 @@ class List extends BaseList {
|
|
125
125
|
valueRegEx = new RegExp(data.value, 'gi'),
|
126
126
|
hasMatch, itemName, name, record;
|
127
127
|
|
128
|
-
me.
|
128
|
+
me.getVdomRoot().cn.forEach((item, index) => {
|
129
129
|
hasMatch = false;
|
130
130
|
itemName = VDomUtil.getByFlag(item, 'name');
|
131
131
|
record = store.getAt(index);
|
@@ -99,7 +99,9 @@ export default env => {
|
|
99
99
|
createStartingPoint(key.substr(1), 'apps');
|
100
100
|
});
|
101
101
|
|
102
|
-
|
102
|
+
if (fs.existsSync(path.join(cwd, 'docs'))) {
|
103
|
+
createStartingPoint('Docs', '');
|
104
|
+
}
|
103
105
|
|
104
106
|
examplesPath = path.join(cwd, 'examples');
|
105
107
|
|
@@ -108,7 +108,9 @@ export default env => {
|
|
108
108
|
createStartingPoint(key.substr(1), 'apps');
|
109
109
|
});
|
110
110
|
|
111
|
-
|
111
|
+
if (fs.existsSync(path.join(cwd, 'docs'))) {
|
112
|
+
createStartingPoint('Docs', '');
|
113
|
+
}
|
112
114
|
|
113
115
|
examplesPath = path.join(cwd, 'examples');
|
114
116
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "neo.mjs",
|
3
|
-
"version": "6.10.
|
3
|
+
"version": "6.10.5",
|
4
4
|
"description": "The webworkers driven UI framework",
|
5
5
|
"type": "module",
|
6
6
|
"repository": {
|
@@ -54,7 +54,7 @@
|
|
54
54
|
"inquirer": "^9.2.12",
|
55
55
|
"neo-jsdoc": "1.0.1",
|
56
56
|
"neo-jsdoc-x": "1.0.5",
|
57
|
-
"postcss": "^8.4.
|
57
|
+
"postcss": "^8.4.32",
|
58
58
|
"sass": "^1.69.5",
|
59
59
|
"siesta-lite": "5.5.2",
|
60
60
|
"showdown": "^2.1.0",
|
@@ -18,7 +18,6 @@ and information is lost.
|
|
18
18
|
<br>
|
19
19
|
|
20
20
|
To show highlighted Neo.mjs source code use
|
21
|
-
<pre>
|
22
21
|
<pre data-javascript>
|
23
22
|
// Source code goes here
|
24
23
|
</pre>
|
@@ -52,3 +51,7 @@ This is the item contents.
|
|
52
51
|
This is the item contents.
|
53
52
|
</details>
|
54
53
|
|
54
|
+
<pre data-neo>
|
55
|
+
let a = 1;
|
56
|
+
</pre>
|
57
|
+
|
@@ -319,6 +319,28 @@
|
|
319
319
|
}
|
320
320
|
}
|
321
321
|
}
|
322
|
+
},
|
323
|
+
"tooltip": {
|
324
|
+
"height": {
|
325
|
+
"value": "{height.24}",
|
326
|
+
"type": "sizing"
|
327
|
+
},
|
328
|
+
"spacinghorizontal": {
|
329
|
+
"value": "{sem.spacing.xsmall}",
|
330
|
+
"type": "spacing"
|
331
|
+
},
|
332
|
+
"fg": {
|
333
|
+
"value": "{sem.color.fg.neutral.inverted}",
|
334
|
+
"type": "color"
|
335
|
+
},
|
336
|
+
"bg": {
|
337
|
+
"value": "{sem.color.bg.neutral.contrast}",
|
338
|
+
"type": "color"
|
339
|
+
},
|
340
|
+
"borderradius": {
|
341
|
+
"value": "{sem.borderradius.medium}",
|
342
|
+
"type": "borderRadius"
|
343
|
+
}
|
322
344
|
}
|
323
345
|
}
|
324
346
|
}
|
@@ -40,6 +40,10 @@
|
|
40
40
|
"disabled": {
|
41
41
|
"value": "{gray.200}",
|
42
42
|
"type": "color"
|
43
|
+
},
|
44
|
+
"contrast": {
|
45
|
+
"value": "{gray.900}",
|
46
|
+
"type": "color"
|
43
47
|
}
|
44
48
|
},
|
45
49
|
"primary": {
|
@@ -82,6 +86,10 @@
|
|
82
86
|
"disabled": {
|
83
87
|
"value": "{gray.300}",
|
84
88
|
"type": "color"
|
89
|
+
},
|
90
|
+
"inverted": {
|
91
|
+
"value": "{white}",
|
92
|
+
"type": "color"
|
85
93
|
}
|
86
94
|
},
|
87
95
|
"primary": {
|
@@ -2,24 +2,24 @@
|
|
2
2
|
"success": true,
|
3
3
|
|
4
4
|
"data": [
|
5
|
-
{"id": 1, "cardIndex": null, "
|
6
|
-
{"id": 2, "cardIndex": 0, "
|
7
|
-
{"id": 3, "cardIndex": 1, "
|
8
|
-
{"id": 4, "cardIndex": 2, "
|
9
|
-
{"id": 5, "cardIndex": null, "
|
10
|
-
{"id": 6, "cardIndex": 3, "
|
11
|
-
{"id": 7, "cardIndex": 4, "
|
12
|
-
{"id": 8, "cardIndex": 5, "
|
13
|
-
{"id": 9, "cardIndex": 6, "
|
14
|
-
{"id": 10, "cardIndex": null, "
|
15
|
-
{"id": 11, "cardIndex": 7, "
|
16
|
-
{"id": 12, "cardIndex": 8, "
|
17
|
-
{"id": 13, "cardIndex": 9, "
|
18
|
-
{"id": 14, "cardIndex": null, "
|
19
|
-
{"id": 15, "cardIndex": 10, "
|
20
|
-
{"id": 16, "cardIndex": 11, "
|
21
|
-
{"id": 17, "cardIndex": 12, "
|
22
|
-
{"id": 18, "cardIndex": 13, "
|
23
|
-
{"id": 19, "cardIndex": 14, "
|
5
|
+
{"id": 1, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "1. Basic data"},
|
6
|
+
{"id": 2, "cardIndex": 0, "formState": "clean", "isHeader": false, "name": "Page 1"},
|
7
|
+
{"id": 3, "cardIndex": 1, "formState": "clean", "isHeader": false, "name": "Page 2"},
|
8
|
+
{"id": 4, "cardIndex": 2, "formState": "clean", "isHeader": false, "name": "Page 3"},
|
9
|
+
{"id": 5, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "2. Personal data"},
|
10
|
+
{"id": 6, "cardIndex": 3, "formState": "clean", "isHeader": false, "name": "CheckBoxes"},
|
11
|
+
{"id": 7, "cardIndex": 4, "formState": "clean", "isHeader": false, "name": "Radios"},
|
12
|
+
{"id": 8, "cardIndex": 5, "formState": "clean", "isHeader": false, "name": "TextAreas"},
|
13
|
+
{"id": 9, "cardIndex": 6, "formState": "clean", "isHeader": false, "name": "Fieldsets"},
|
14
|
+
{"id": 10, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "3. More data"},
|
15
|
+
{"id": 11, "cardIndex": 7, "formState": "clean", "isHeader": false, "name": "NumberFields"},
|
16
|
+
{"id": 12, "cardIndex": 8, "formState": "clean", "isHeader": false, "name": "HiddenFields"},
|
17
|
+
{"id": 13, "cardIndex": 9, "formState": "clean", "isHeader": false, "name": "SelectFields"},
|
18
|
+
{"id": 14, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "4. Optional data"},
|
19
|
+
{"id": 15, "cardIndex": 10, "formState": "clean", "isHeader": false, "name": "ZipCodeFields"},
|
20
|
+
{"id": 16, "cardIndex": 11, "formState": "clean", "isHeader": false, "name": "EmailFields"},
|
21
|
+
{"id": 17, "cardIndex": 12, "formState": "clean", "isHeader": false, "name": "UrlFields"},
|
22
|
+
{"id": 18, "cardIndex": 13, "formState": "clean", "isHeader": false, "name": "PhoneFields"},
|
23
|
+
{"id": 19, "cardIndex": 14, "formState": "clean", "isHeader": false, "name": "CurrencyFields"}
|
24
24
|
]
|
25
25
|
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
.website-blog-container {
|
2
|
+
.website-blog-searchfield {
|
3
|
+
transition: margin var(--website-transition-duration) ease-out;
|
4
|
+
width : 240px;
|
5
|
+
|
6
|
+
@media (max-height: 400px), (max-width: 600px) {
|
7
|
+
margin: 5px;
|
8
|
+
}
|
9
|
+
|
10
|
+
@media (min-height: 401px) and (min-width: 601px) {
|
11
|
+
margin: 10px;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
.website-blog-toolbar {
|
16
|
+
background-color: var(--website-blog-toolbar-background-color);
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,183 @@
|
|
1
|
+
.website-blog-list.neo-list {
|
2
|
+
transition: padding var(--website-transition-duration) ease-out;
|
3
|
+
|
4
|
+
.neo-list-item {
|
5
|
+
cursor : default;
|
6
|
+
display : flex;
|
7
|
+
max-width : 800px;
|
8
|
+
overflow : hidden;
|
9
|
+
padding : 0;
|
10
|
+
transition : height var(--website-transition-duration) ease-out, margin-bottom var(--website-transition-duration) ease-out;
|
11
|
+
white-space: normal;
|
12
|
+
width : 100%;
|
13
|
+
|
14
|
+
.content {
|
15
|
+
flex: 1;
|
16
|
+
}
|
17
|
+
|
18
|
+
.neo-absolute {
|
19
|
+
position: absolute;
|
20
|
+
}
|
21
|
+
|
22
|
+
.neo-bold {
|
23
|
+
font-weight: 600;
|
24
|
+
}
|
25
|
+
|
26
|
+
.neo-highlight-search {
|
27
|
+
color: #5d83a7;
|
28
|
+
}
|
29
|
+
|
30
|
+
.neo-inner-content {
|
31
|
+
color : #fff;
|
32
|
+
display : inline-block;
|
33
|
+
margin-left: 10px;
|
34
|
+
text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
|
35
|
+
transition : font-size var(--website-transition-duration) ease-out;
|
36
|
+
}
|
37
|
+
|
38
|
+
.neo-full-size {
|
39
|
+
height: 100%;
|
40
|
+
width : 100%;
|
41
|
+
}
|
42
|
+
|
43
|
+
.neo-inner-details {
|
44
|
+
transition: line-height var(--website-transition-duration) ease-out;
|
45
|
+
}
|
46
|
+
|
47
|
+
.neo-item-bottom-position {
|
48
|
+
bottom : 0;
|
49
|
+
left : 0;
|
50
|
+
transition: margin var(--website-transition-duration) ease-out;
|
51
|
+
}
|
52
|
+
|
53
|
+
.neo-item-top-position {
|
54
|
+
color : #fff;
|
55
|
+
right : 0;
|
56
|
+
text-align : end;
|
57
|
+
text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
|
58
|
+
transition : font-size var(--website-transition-duration) ease-out, margin var(--website-transition-duration) ease-out;
|
59
|
+
}
|
60
|
+
|
61
|
+
.neo-relative {
|
62
|
+
position: relative;
|
63
|
+
}
|
64
|
+
|
65
|
+
.neo-title {
|
66
|
+
color : #fff;
|
67
|
+
font-weight : 600;
|
68
|
+
line-height : 1;
|
69
|
+
text-decoration: none;
|
70
|
+
text-shadow : 1px 1px 1px #000, 1px 1px 1px #fff;
|
71
|
+
transition : color 250ms ease-out;
|
72
|
+
|
73
|
+
&:hover {
|
74
|
+
color: #5d83a7
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
.neo-top-20 {
|
79
|
+
align-items: center;
|
80
|
+
display : flex;
|
81
|
+
transition : margin var(--website-transition-duration) ease-out;
|
82
|
+
}
|
83
|
+
|
84
|
+
.neo-user-image {
|
85
|
+
border-radius: 50%;
|
86
|
+
display : inline-block;
|
87
|
+
transition : height var(--website-transition-duration) ease-out, width var(--website-transition-duration) ease-out;
|
88
|
+
}
|
89
|
+
|
90
|
+
.preview-image {
|
91
|
+
background-blend-mode: overlay;
|
92
|
+
background-position : 50% 50%;
|
93
|
+
background-size : cover;
|
94
|
+
height : 100%;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
@media (max-height: 400px), (max-width: 600px) {
|
99
|
+
padding: 5px 5px 0 5px;
|
100
|
+
|
101
|
+
.neo-inner-content {
|
102
|
+
font-size: 12px;
|
103
|
+
}
|
104
|
+
|
105
|
+
.neo-inner-details {
|
106
|
+
line-height: 16px;
|
107
|
+
}
|
108
|
+
|
109
|
+
.neo-item-bottom-position {
|
110
|
+
margin: 9px 12px;
|
111
|
+
right : 15%;
|
112
|
+
}
|
113
|
+
|
114
|
+
.neo-item-top-position {
|
115
|
+
font-size: 12px;
|
116
|
+
left : 15%;
|
117
|
+
margin : 9px 12px;
|
118
|
+
top : -200px;
|
119
|
+
}
|
120
|
+
|
121
|
+
.neo-list-item {
|
122
|
+
border-radius: 10px;
|
123
|
+
height : 200px;
|
124
|
+
margin-bottom: 5px;
|
125
|
+
}
|
126
|
+
|
127
|
+
.neo-title {
|
128
|
+
font-size: 20px;
|
129
|
+
}
|
130
|
+
|
131
|
+
.neo-top-20 {
|
132
|
+
margin-top: 15px;
|
133
|
+
}
|
134
|
+
|
135
|
+
.neo-user-image {
|
136
|
+
height: 30px;
|
137
|
+
width : 30px;
|
138
|
+
}
|
139
|
+
}
|
140
|
+
|
141
|
+
@media (min-height: 401px) and (min-width: 601px) {
|
142
|
+
padding: 10px 10px 0 10px;
|
143
|
+
|
144
|
+
.neo-inner-content {
|
145
|
+
font-size: 16px;
|
146
|
+
}
|
147
|
+
|
148
|
+
.neo-inner-details {
|
149
|
+
line-height: 22px;
|
150
|
+
}
|
151
|
+
|
152
|
+
.neo-item-bottom-position {
|
153
|
+
margin: 30px 40px;
|
154
|
+
right : 30%;
|
155
|
+
}
|
156
|
+
|
157
|
+
.neo-item-top-position {
|
158
|
+
font-size: 16px;
|
159
|
+
left : 30%;
|
160
|
+
margin : 30px 40px;
|
161
|
+
top : -400px;
|
162
|
+
}
|
163
|
+
|
164
|
+
.neo-list-item {
|
165
|
+
border-radius: 20px;
|
166
|
+
height : 400px;
|
167
|
+
margin-bottom: 10px;
|
168
|
+
}
|
169
|
+
|
170
|
+
.neo-title {
|
171
|
+
font-size: 34px;
|
172
|
+
}
|
173
|
+
|
174
|
+
.neo-top-20 {
|
175
|
+
margin-top: 20px;
|
176
|
+
}
|
177
|
+
|
178
|
+
.neo-user-image {
|
179
|
+
height: 44px;
|
180
|
+
width : 44px;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|