diff --git a/frame.js b/frame.js index c3c095f4..2ad2561b 100644 --- a/frame.js +++ b/frame.js @@ -217,7 +217,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) { can.onmotion.clear(can, can._action), can.user.isMobile && can.ConfHeight() > can.ConfWidth() && can.onmotion.hidden(can, can._action) action === false || sub.onappend._action(sub, can.Conf(ice.MSG_ACTION)||msg.Option(ice.MSG_ACTION), action||can._action) - action === false || sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS)), sub.onappend.tools(sub, msg) + action === false || sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS)), can.user.isMobile || sub.onappend.tools(sub, msg) can.core.List([chat.FLOAT, chat.FULL, chat.CMD], function(mode) { can.page.ClassList.has(can, can._target, mode) && sub.onlayout[mode](sub) }) can.user.isMobile && can.isCmdMode() && can.page.style(can, can._output, html.MAX_HEIGHT, can.ConfHeight()) can.onmotion.story.auto(can, can._output), can.onaction._output(can, msg), can.base.isFunc(cb) && cb(msg) diff --git a/page/index.css b/page/index.css index 234c151f..97f1e1cf 100644 --- a/page/index.css +++ b/page/index.css @@ -1,13 +1,10 @@ -* { box-sizing:border-box; } -body, iframe, fieldset, table, tr, th, td { padding:0; border:0; margin:0; } +* { box-sizing:border-box; padding:0; border:0; margin:0; } body { background-color:black; color:cyan; font-size:16px; } -legend { background-color:cadetblue; color:white; padding:0 20px; margin-right:2px; float:left; } -select { background-color:black; color:cyan; padding:0 10px; margin:0 2px; border:0; } -textarea { background-color:cyan; width:400px; padding:5px; border:0; margin:2px; } -input[type=password] { background-color:cyan; color:black; padding:0 5px; margin:0 2px; border:0; width:90px; } -input[type=text] { background-color:cyan; color:black; padding:0 5px; margin:0 2px; border:0; width:90px; } -input[name=cmd] { background-color:black; color:white; width:320px; } -input[name=url] { width:320px; } +legend { background-color:cadetblue; color:white; padding:0 20px; margin-right:5px; } +select { background-color:black; color:cyan; padding:0 10px; margin-right:5px; } +textarea { background-color:cyan; padding:5px; width:400px; } +input { background-color:cyan; padding:0 5px; margin-right:5px; } +input:not([type=button]) { width:120px; } input[name=text] { width:160px; } input[name=date] { width:150px; } input[name=path] { width:160px; } @@ -16,7 +13,9 @@ input[name=limit] { width:48px; } input[name=offend] { width:48px; } input[name=id] { width:48px; } input[name=ID] { width:48px; } -input[type=button] { background-color:black; color:cyan; border:0; margin:0 2px; } +input[name=url] { width:320px; } +input[name=cmd] { background-color:black; color:white; width:320px; } +input[type=button] { background-color:black; color:cyan; } input[type=button][name=restart] { background-color:blue; } input[type=button][name=start] { background-color:blue; } input[type=button][name=open] { background-color:blue; } @@ -25,60 +24,49 @@ input[type=button][name=trash] { background-color:red; } input[type=button][name=delete] { background-color:red; } input[type=button][name=remove] { background-color:red; } +div.output { position:relative; } div.layout.flex>div { float:left; } -table.layout { border-spacing:0; } -table.layout td { vertical-align:top; } -table.layout td.content div.toggle { background-color:#4682b46b; color:white; font-size:24px; position:absolute; } -table.layout td.content div.toggle>div { display:table-cell; } -table.layout td.content div.toggle.project { padding-top:50px; height:100px; width:15px; top:20%; left:0px; border-top-right-radius:10px; border-bottom-right-radius:10px; } -table.layout td.content div.toggle.profile { padding-top:50px; height:100px; width:15px; top:20%; right:0px; border-top-left-radius:10px; border-bottom-left-radius:10px; } -table.layout td.content div.toggle.display { margin-top:-15px; height:15px; width:100px; position:sticky; left:40%; border-top-left-radius:10px; border-top-right-radius:10px; overflow:hidden; } -table.layout td.content div.toggle.display>div { text-align:center; width:100px; transform: rotate(-90deg) translate(5px, 0px); } -table.content thead { position:sticky; top:2px; } -table.content th { background-color:steelblue; padding:2px 6px; } -table.content td { padding:2px 6px; } -table.content.action th:last-child { position:sticky; right:0; } -table.content.action td:last-child { background-color:steelblue; position:sticky; right:0; } +div.project div.list { margin-left:10px; } +div.project div.item { padding:2px 10px; } +div.project div.item>div.name { padding-left:20px; } +div.project div.switch { rotate:90deg; width:12px; float:left; } +div.project div.switch.open { rotate:180deg; translate:3px -3px; } +div.project div.zone>div.name { background-color:steelblue; color:white; text-align:center; padding:3px; clear:both; } +div.project div.zone>div.list>div.zone>div.name { background-color:#09466fc2; text-align:left; padding-left:20px; } +div.project div.zone>div.list>div.zone>div.name:hover { background-color:#3c7da8d9; } +div.project div.zone>div.action>div.item { float:right; clear:none; } +div.project div.zone>div.action>div.item input[type=text] { background-color:#ff000000; color:white; padding-left:10px; } div.story[data-type=spark] { background-color:#2169a9a6; color:white; padding:5px 10px; border-left:solid 5px blue; margin:10px; } div.code { background-color:#343a3445; color:white; padding:10px; border:solid 2px green; } +table.content thead { position:sticky; top:2px; } +table.content th { background-color:steelblue; padding:2px 5px; } +table.content td { padding:2px 5px; } +table.content.action th:last-child { position:sticky; right:2px; } +table.content.action td:last-child { background-color:steelblue; position:sticky; right:2px; } -div.output { position:relative; } -div.output div.project div.item { padding:2px 10px; } -div.output div.project div.list { margin-left:10px; } -div.output div.project div.switch { transform: rotate(90deg) translate(1px, 0px); width:12px; float:left; } -div.output div.project div.switch.open { transform: rotate(180deg) translate(-4px, 4px); } -div.output div.project div.zone>div.name { background-color:steelblue; color:white; text-align:center; padding:3px; clear:both; } -div.output div.project div.zone>div.list>div.zone>div.name { background-color:#09466fc2; padding-left:20px; text-align:left; } -div.output div.project div.zone>div.list>div.zone>div.name:hover { background-color:#3c7da8d9; } -div.output div.project div.item>div.name { padding-left:20px; } -div.output div.project div.zone>div.action>div.item { padding:0; margin:0; float:right; clear:none; } -div.output div.project div.zone>div.action>div.item input[type=text] { background-color:#ff000000; padding-left:10px; color:white; } - -fieldset.contexts { - background:radial-gradient(black, #00000073); color:white; - position:fixed; left:20px; top:100px; z-index:10; -} -fieldset.simple>legend { display:none; } -fieldset.simple>form.option { display:none; } -fieldset.simple>div.status { display:none; } -fieldset.simple div.toggle { display:none; } fieldset.plugin { background-color:#061c3c9e; padding:10px; margin:10px; } -fieldset.float { background-color:#0e3369; color:white; padding:0; margin:0; } -fieldset.full { background-color:#0e3369; color:white; padding:0; margin:0; left:0; top:0; overflow:auto; } fieldset.plugin>form.option input[type=button][name=close]{ display:none; } -fieldset.float>form.option input[type=button][name=close]{ display:block; } -fieldset.full>form.option input[type=button][name=close]{ display:block; } fieldset.plugin>div.status { border-top:1px solid darkcyan; } fieldset.story>div.status { border-top:1px solid darkcyan; } fieldset.panel>div.status { display:none; } -fieldset.cmd>div.output { overflow:hidden; } - +fieldset.panel>legend { display:none; } fieldset.output { padding:0; margin:0; } +fieldset.output>legend { display:none; } fieldset.output>form.option { display:none; } fieldset.output>div.action { display:none; } fieldset.output>div.status { display:none; } fieldset.output div.toggle { display:none; } +fieldset.simple>legend { display:none; } +fieldset.simple>form.option { display:none; } +fieldset.simple>div.status { display:none; } +fieldset.simple div.toggle { display:none; } +fieldset.float { background-color:#0e3369; color:white; padding:0; margin:0; } +fieldset.float>form.option input[type=button][name=close]{ display:block; } +fieldset.full { background-color:#0e3369; color:white; padding:0; margin:0; position:absolute; left:0; top:0; overflow:auto; } +fieldset.full>form.option input[type=button][name=close]{ display:block; } +fieldset.cmd>div.output { overflow:hidden; } +fieldset.input>legend { display:none; } fieldset.input.key { overflow:auto; } fieldset.input.key div.action { display:none; } fieldset.input.key.simple div.status { display:none; } @@ -130,60 +118,43 @@ body>div.upload input[type=file] { width:320px; } textarea { tab-size:2; height:60px; } legend { font-size:1.2rem; height:31px; } select, input { font-size:1.0rem; height:31px; } -table.content th, table.content td, div.zone>div.name, div.item, code.story, div.story[data-type=spark] { font-family:monospace; } -div.code { font-family:monospace; } +div.project, div.item, div.code, div.story[data-type=spark], svg, table.content { font-family:monospace; white-space:pre; text-align:left; } div.action>div.tabs { padding:5px 10px; height:31px; } div.status>div.item { padding:4px; height:30px; } -div.status>div.item>label { font-size:0.6rem; font-family:monospace; } -svg { font-family:monospace; } - -/* display */ -form.option, div.action { display:contents; } -.hide, .hidden, form.option>div.item>label, div.action>div.item>label, fieldset.panel>legend, fieldset.output>legend, fieldset.input>legend { display:none; } -div.output, div.status, div.content, div.project div.item, div.item.textarea, div.code, div.story[data-type=spark], p.story, h1, h2, h3 { clear:both; } -form.option, form.option>div.item, div.action, div.action>div.item, div.action>div.tabs, div.project, div.status>div.item { float:left; } -div.code, div.story, div.action, div.output, div.status, div.project, div.content, div.profile, div.display, table.content, table.content td, body>div.toast { overflow:auto; } -div.code, div.story, div.item, div.content, table.content, textarea { white-space:pre; } -div.code, div.story, div.item { text-align:left; } - -/* position cursor */ -fieldset.auto, fieldset.full, fieldset.float, fieldset.input, body>div.toast, body>div.carte, body>div.input, body>div.upload { position:fixed; z-index:10; } -legend, select, input[type=button], div.tabs, div.item, th, td, h1, h2, h3 { cursor:pointer; } -div.title, div.story[data-type=spark] { cursor:copy; } - +div.status>div.item>label { font-size:0.6rem; } +h1 { text-align:center; margin:20px 0; } +h2 { margin:20px 0; } +h3 { margin:20px 0; } +ul { padding-left:40px; margin:20px 0; } /* hover */ legend:hover { background-color:skyblue; } select:hover { background-color:gray; color:cyan; } input[type=text]:hover { background-color:white; } input[name=cmd]:hover { background-color:cyan; color:black; } input[type=button]:hover { background-color:gray; } -select, textarea, input[type=text] { box-shadow:4px 4px 20px 4px #626bd0; } -table.content tr.select, table.content tr:hover, h1:hover, h2:hover, h3:hover, div.item.select, div.item:hover, div.tabs.select, div.tabs:hover, .select { background-color:steelblue; } -table.content th:hover, table.content td.select, table.content td:hover { background-color:cornflowerblue; } +div.tabs:hover, div.tabs.select, div.item:hover, div.item.select, table.content tr:hover, table.content tr.select, h1:hover, h2:hover, h3:hover, .select { background-color:steelblue; } +table.content th:hover, table.content td:hover, table.content td.select { background-color:cornflowerblue; } div.story[data-type=spark] span:hover { background-color:deepskyblue; box-shadow:4px 4px 20px 4px #29318e; } body>div.carte div.item:hover { background-color:cornflowerblue; } - -/* scrollbar */ -body { overflow:-moz-scrollbars-none; -ms-overflow-style:none; } -body::-webkit-scrollbar { width:0 !important; height:0 !important; } -fieldset.panel.Action>div.output::-webkit-scrollbar { width:0 !important; height:0 !important; } -div.story[data-type=spark]::-webkit-scrollbar { width:0 !important; height:0 !important; } -div.project::-webkit-scrollbar { width:0 !important; height:0 !important; } -div.content::-webkit-scrollbar { width:0 !important; height:0 !important; } - -/* table card */ -div.output.card div.item.stop { color:gray; } -div.output.card div.item { padding:10px; border:solid 1px #e7e7e7; margin:10px; width:240px; float:left; } -div.output.card div.item>div.title { font-size:1.2rem; font-weight:bold; padding:10px; border-bottom:solid 1px #e7e7e7; } -div.output.card div.item>div.content { padding:10px; height:45px; } -body.white div.output.card div.item input[type=button] { background-color:#ff000000; } - +select, textarea, input[type=text] { box-shadow:4px 4px 20px 4px #626bd0; } +legend, select, input[type=button], div.tabs, div.item, th, td, h1, h2, h3 { cursor:pointer; } +div.title, div.story[data-type=spark] { cursor:copy; } +/* display */ +form.option, div.action { display:contents; } +.hide, .hidden, form.option>div.item>label, div.action>div.item>label { display:none; } +div.code, div.story[data-type=spark], div.output, div.status, div.project div.item, div.content, div.item.textarea { clear:both; } +div.code, div.story, div.action, div.output, div.status, div.project, div.content, div.profile, div.display, table.content, table.content td, body>div.toast { overflow:auto; } +legend, form.option, form.option>div.item, div.action, div.action>div.item, div.action>div.tabs, div.project, div.status>div.item { float:left; } +div.status>legend { margin-left:5px; margin-right:0; float:right; clear:none; } +fieldset.auto, fieldset.full, fieldset.float, body>div.float { position:fixed; z-index:10; } /* white */ +body.black a { color:yellow; } +body.black { overflow:hidden; } +body.white { overflow:hidden; } body.white { background-color:rgba(5,34,56,0.75); color:white; } -body.white select { background-color:yellowgreen; color:white; opacity:1; } +body.white select { background-color:yellowgreen; color:white; } body.white textarea { background-color:white; } -body.white input[type=password] { background-color:white; } -body.white input[type=text] { background-color:white; } +body.white input { background-color:white; } body.white input[name=cmd] { background-color:black; color:white; } body.white input[type=button] { background-color:cornflowerblue; color:white; } body.white input[type=button][name=start] { background-color:blue; } @@ -193,18 +164,18 @@ body.white input[type=button][name=trash] { background-color:red; } body.white input[type=button][name=delete] { background-color:red; } body.white input[type=button][name=remove] { background-color:red; } body.white table.content th { background-color:skyblue; } +body.white fieldset.panel.Search a { color:yellow; } body.white fieldset.panel.Action { color:black; } body.white fieldset.panel.Action div.action { color:white; } body.white fieldset.plugin { background-color:#ffffffa1; } body.white fieldset.float { background-color:#0e3369; color:white; } body.white fieldset.full { background-color:#0e3369; color:white; } -body.white div.output div.project div.zone>div.list>div.zone>div.name { background-color:#09466f66; color:black; } -body.white fieldset.full div.output div.project div.zone>div.list>div.zone>div.name { background-color:#09466f66; color:white; } - +body.white fieldset.full div.project div.zone>div.list>div.zone>div.name { background-color:#09466f66; color:white; } +body.white div.project div.zone>div.list>div.zone>div.name { background-color:#09466f66; color:black; } /* white hover */ body.white legend:hover { background-color:skyblue; } body.white select:hover { background-color:#99cc667d; } -body.white input[type=text]:hover { background-color:cyan; } +body.white input:hover { background-color:cyan; } body.white input[name=cmd]:hover { background-color:white; color:black; } body.white input[type=button]:hover { background-color:#1b7acc8c; } body.white table.content tr:hover { background-color:#4682b46b; } @@ -217,130 +188,61 @@ body.white div.item.select { background-color:#4682b46b; } body.white h1:hover { background-color:#4682b46b; } body.white h2:hover { background-color:#4682b46b; } body.white h3:hover { background-color:#4682b46b; } - /* print */ +body.print { -webkit-filter: grayscale(100%); } body.print { background-color:white; color:black; } -body.print legend, body.print select, body.print input, body.print input[type=button] { background-color:lightgray; color:black; box-shadow:0px 0px 0px 0px #626bd0; } -body.print input[type=text] { background-color:lightgray; } +body.print legend, body.print select, body.print input, body.print input[type=button] { background-color:white; color:black; } body.print table.content th { background-color:lightgray; } body.print table.content.action td:last-child { background-color:lightgray; } body.print div.project div.zone>div.name { background-color:lightgray; } body.print div.list div.item { background-color:white; } -body.print div.list div.item.select { background-color:lightgray; } body.print div.item.select { background-color:lightgray; } body.print div.story[data-type=spark] { background-color:lightgray; } body.print fieldset.plugin { background-color:white; color:black; } body.print fieldset.panel { background-color:white; color:black; } body.print fieldset.draw div.output div.content svg { background-color:lightgray; } body.print fieldset.draw div.output { background-color:lightgray; } - -body.mobile { overflow:auto; } -body.mobile.simple { overflow:hidden; } +/* mobile */ +body.mobile * { border-radius:0; } body.mobile legend { font-size:1.6rem; height:38px; } -body.mobile select { font-size:1.4rem; height:38px; border-radius:0; margin-right:10; } -body.mobile textarea { font-size:1.2rem; border-radius:0; } -body.mobile input[type=password] { font-size:1.2rem; height:38px; border-radius:0; margin-right:5px; } -body.mobile input[type=text] { font-size:1.2rem; height:38px; border-radius:0; margin-right:5px; } -body.mobile input[type=button] { font-size:1.2rem; height:38px; border-radius:0; } -body.mobile fieldset.float input[type=button] { font-size:1.4rem; height:38px; } -body.mobile fieldset.plugin { margin:10px 0; } -body.mobile fieldset.plugin.full { margin:0; } -body.mobile table.layout div.toggle { font-size:48px; } +body.mobile select { font-size:1.4rem; height:38px; } +body.mobile textarea { font-size:1.2rem; } +body.mobile input { font-size:1.2rem; height:38px; } body.mobile table.content th { padding:6px 6px; } - -body.mobile table.layout td.content div.toggle.project { width:30px; } -body.mobile table.layout td.content div.toggle.profile { width:30px; } -body.mobile table.layout td.content div.toggle.display { margin-top:-30px; height:30px; } - body.mobile form.option>div.item { margin:0; height:38px; } body.mobile div.action>div.item { margin:0; height:38px; } -body.mobile fieldset.word.float>div.output>div.project { top:38px; } +body.mobile div.action { display:none; } +body.mobile.landscape div.action { display:none; } body.mobile>div.carte div.item { font-size:1.6rem; } -body.mobile>div.input.login input { font-size:1.4rem; } -body.mobile>div.input.login input[name=username] { width:264px; } -body.mobile>div.input.login input[name=password] { width:264px; } +body.mobile>div.input.login input { font-size:1.4rem; width:264px; } +body.mobile fieldset.plugin { margin:10px 0; } +body.mobile fieldset.plugin.full { margin:0; } +body.mobile fieldset.cmd>div.output { overflow:auto; } body.mobile fieldset.input.date div.output td { padding:8px 20px; } - +body.mobile fieldset.word.float>div.output>div.project { top:38px; } body.mobile fieldset.Header.head { width:-webkit-fill-available; } body.mobile fieldset.Header.head { background-color:#000000b8; font-size:1.6rem; height:3rem; position:fixed; top:0; } body.mobile fieldset.Header.head div.output { height:3rem; } body.mobile fieldset.Header.head div.state.time { display:none; } body.mobile fieldset.Header.head div.search>input { background-color:#21181838; color:white; margin:0; height:38px; width:-webkit-fill-available } body.mobile fieldset.Header.head div.search { height:38px; width:-webkit-fill-available } -body.mobile fieldset.Header.head div.output div { height:38px; margin-left:0; } +body.mobile fieldset.Header.head div.output div { height:48px; margin-left:0; } body.mobile fieldset.River.left { background-color:#243950bf; font-size:1.6rem; min-width:240px; position:fixed; top:3rem; z-index:10; } body.mobile fieldset.River>div.output { width:320px; } body.mobile fieldset.River>div.output div.item { font-size:1.6rem; } body.mobile fieldset.Action.main { margin-top:3rem; margin-bottom:3rem; } body.mobile fieldset.Action.main.cmd { margin-top:0; margin-bottom:0; } -body.mobile fieldset.Action>div.output { overflow:hidden; } body.mobile fieldset.Footer.foot { width:-webkit-fill-available; } body.mobile fieldset.Footer.foot { background-color:#000000b8; font-size:1.6rem; height:3rem; position:fixed; bottom:0; } body.mobile fieldset.Footer.foot div.output { height:3rem; } -body.mobile fieldset.Footer.foot div.output div { height:2.6rem; } +body.mobile fieldset.Footer.foot div.output div { height:3rem; } body.mobile fieldset.Footer.foot input[name=cmd] { height:38px; } - body.mobile.landscape fieldset.Header.head { position:unset; } body.mobile.landscape fieldset.Header.head div.state.time { display:block; } body.mobile.landscape fieldset.Action.main { margin-top:0; margin-bottom:0; } body.mobile.landscape fieldset.Footer.foot { position:unset; } body.mobile.landscape fieldset.Footer.foot input[name=cmd] { width:240px; } - -body.mobile fieldset.draw.spide div.action { display:none; } -body.mobile fieldset.draw.trend div.action { display:none; } -body.mobile.landscape fieldset.draw.spide div.action { display:block; } -body.mobile.landscape fieldset.draw.trend div.action { display:block; } -body.mobile div.output.card div.item { height:160px; float:none; } -body.mobile.landscape div.output.card div.item { width:auto; float:left; } -body.mobile.landscape.simple div.output.card div.item { width:auto; float:left; } - - -body.simple fieldset.Header { border-bottom:solid 1px #e7e7e7; height:60px; } -body.simple fieldset.River { border-right:solid 1px #e7e7e7; } -body.simple fieldset.River>div.output { padding:10px 10px; width:200px; } -body.simple fieldset.River>div.output div.item { color:black; padding:10px 40px; border-left:none; } -body.simple fieldset.River>div.output div.item.select { background-color:white; } -body.simple fieldset.River>div.output div.item:hover { background-color:#0152d9; color:white; } -body.simple fieldset.River>div.output div.list div.item { background-color:white; color:black; border-left:none; } -body.simple fieldset.River>div.output div.list div.item.select { background-color:#0152d9; color:white; } -body.simple fieldset.River>div.output div.list div.item:hover { background-color:#0152d9; color:white; } - -body.simple fieldset.Action>div.action { background-color:white; padding:10px; border-bottom:solid 1px red; height:38px; width:600px; } -body.simple fieldset.Action>div.action div.tabs { padding:10px; margin:10px; } -body.simple fieldset.Action.tabs>div.output { margin-top:58px; } -body.simple fieldset.Action>div.output>fieldset.plugin.inner { box-shadow:none; } -body.simple fieldset.Action>div.output>fieldset.plugin.inner>legend { display:none; } -body.simple fieldset.Action>div.output>fieldset.plugin.inner>form.option { display:none; } -body.simple fieldset.Action>div.output>fieldset.plugin.inner>div.action { display:none; } - -body.simple div.output.card div.item { border-radius:5px; box-shadow:2px 2px 6px 1px gray; } -body.simple div.output.card div.item>div.title { border-bottom:solid 1px #e7e7e7; } -body.simple fieldset.feel.float { top:0; } -body.simple div.code { padding:0px; border:none; } - -body.white.simple div.profile { background-color:whitesmoke; } -body.white.simple div.profile { color:black; } -body.white.simple div.display { background-color:whitesmoke; } -body.white.simple div.code { background-color:white; color:black; padding:0px; border:none; } -body.white.simple fieldset.plugin div.status { border-top:1px solid lightgray; } -body.white.simple>div.carte { background-color:white; border:solid 1px #e7e7e7; } -body.white.simple>div.carte div.item { background-color:white; color:black; } -body.white.simple div.carte div.item:hover { background-color:#e3e6f1; } -body.white.simple fieldset.plugin div.output.json div.item span { color:black; } -body.white.simple fieldset.plugin div.output.json div.item span.key { color:blue; } -body.white.simple fieldset.plugin div.output.json div.item span.nonce { color:lightgray; } -body.white.simple div.output.card div.item:hover { background-color:white; box-shadow:5px 5px 10px 5px gray; } -body.white.simple div.output.card input[type=button] { background-color:#0152d9; color:black; font-size:0.8rem; padding:5px 10px; box-shadow:2px 2px 6px 1px gray; } -body.white.simple div.output.card input[type=button]:hover { box-shadow:2px 2px 8px 2px gray; } -body.white.simple div.output div.project div.zone>div.action>div.item input[type=text] { color:black; } - -body.white div.project.auto { background-color:whitesmoke; } -body.white div.profile.auto { background-color:whitesmoke; } -body.black div.project.auto { background-color:#1d3349; } -body.black div.profile.auto { background-color:#1d3349; } - /* misc */ -div.output div.row div.col { float:left; border:solid 1px green; } fieldset.panel.Action.cmd>div.toggle.project { display:none; } fieldset.panel.Search div.story[data-type=spark] { padding:0px; margin:0px; } fieldset.plugin.location>div.action input[type=text] { width:40px; } @@ -349,16 +251,12 @@ fieldset.plugin.parse.cmd>legend { display:none; } fieldset.plugin.parse.cmd>form.option { display:none; } fieldset.plugin.parse.cmd>div.action { display:none; } fieldset.plugin.parse.cmd>div.status { display:none; } +fieldset.plugin.inner.cmd>legend { display:none; } +fieldset.plugin.inner.cmd>div.action { display:none; } +fieldset.plugin.inner.cmd>form.option { display:none; } fieldset.xterm div.toggle { display:none; } fieldset.story.inner.float { background-color:black; } - -body.black { overflow:hidden; } -body.white { overflow:hidden; } -body.black a { color:yellow; } -body.white fieldset.panel.Search a { color:yellow; } -body.mobile fieldset.plan>div.action { display:none; } -body.mobile.simple div.output.card div.item { width:-webkit-fill-available; } - +/* flex */ div.layout.tabs>div.tabs { display:flex; overflow:auto; } div.layout.tabs>div.tabs>div { padding:10px; height:32px; flex:1; } div.layout.tabs>div.tabs>div:hover { background:steelblue; } @@ -373,4 +271,33 @@ div.layout.tabs.right>div.tabs { flex-direction:column; } div.layout.tabs.right>div.tabs>div { writing-mode:tb; } div.layout.tabs.box>div.list { height:unset; } div.layout.tabs.box>div.tabs { background-color:steelblue; text-align:center; padding:3px; display:block; } - +/* layout */ +table.layout { border-spacing:0; } +table.layout td { vertical-align:top; } +table.layout td.content div.toggle { background-color:#4682b46b; color:white; font-size:24px; position:absolute; } +table.layout td.content div.toggle>div { display:table-cell; } +table.layout td.content div.toggle.project { padding-top:50px; height:130px; width:15px; top:20%; left:0px; border-top-right-radius:10px; border-bottom-right-radius:10px; } +table.layout td.content div.toggle.profile { padding-top:50px; height:130px; width:15px; top:20%; right:0px; border-top-left-radius:10px; border-bottom-left-radius:10px; } +table.layout td.content div.toggle.display { margin-top:-15px; height:15px; width:130px; left:40%; border-top-left-radius:10px; border-top-right-radius:10px; } +table.layout td.content div.toggle.display>div { text-align:center; width:130px; rotate:-90deg; translate:5px -5px; } +body.mobile table.layout div.toggle { font-size:48px; } +body.mobile table.layout td.content div.toggle.project { width:30px; padding-top:35px; } +body.mobile table.layout td.content div.toggle.profile { width:30px; padding-top:35px; } +body.mobile table.layout td.content div.toggle.display { margin-top:-30px; height:30px; } +body.mobile table.layout td.content div.toggle.display>div { translate:5px -15px; } +/* scrollbar */ +body { overflow:-moz-scrollbars-none; -ms-overflow-style:none; } +body::-webkit-scrollbar { width:0 !important; height:0 !important; } +fieldset.panel.Action>div.output::-webkit-scrollbar { width:0 !important; height:0 !important; } +div.story[data-type=spark]::-webkit-scrollbar { width:0 !important; height:0 !important; } +div.project::-webkit-scrollbar { width:0 !important; height:0 !important; } +div.content::-webkit-scrollbar { width:0 !important; height:0 !important; } +/* table card */ +div.output.card div.item.stop { color:gray; } +div.output.card div.item { padding:10px; border:solid 1px #e7e7e7; margin:10px; width:240px; float:left; } +div.output.card div.item>div.title { font-size:1.2rem; font-weight:bold; padding:10px; border-bottom:solid 1px #e7e7e7; } +div.output.card div.item>div.content { padding:10px; height:45px; } +body.white div.output.card div.item input[type=button] { background-color:#ff000000; } +body.mobile div.output.card div.item { height:160px; float:none; } +body.mobile.simple div.output.card div.item { width:-webkit-fill-available; } +body.mobile.landscape div.output.card div.item { width:auto; float:left; } \ No newline at end of file diff --git a/panel/action.css b/panel/action.css index b5c65d1a..9c7d51e6 100644 --- a/panel/action.css +++ b/panel/action.css @@ -49,7 +49,7 @@ fieldset.Header div.tabs div.tabs { padding:5px 10px; } fieldset.Header div.tabs div.tabs:hover { background-color:#6495ed63; } fieldset.Action>div.project.toggle { - background-color:cornsilk; opacity:0.4; color:teal; font-size: 28px; padding-top: 50px; height: 100px; width:20px; position: fixed; top: 30%; + background-color:cornsilk; opacity:0.4; color:teal; font-size: 36px; padding-top:50px; height:150px; width:20px; position: fixed; top: 30%; border-top-right-radius:20px; border-bottom-right-radius:20px; } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 6d85d1d0..10692cf1 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -16,19 +16,24 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl case chat.FULL: // no break default: can.onimport.project(can, paths), can.onimport._tabs(can) can.onmotion.delay(can, function() { can.core.Next(files.slice(1), function(file, next) { - can.onimport.tabview(can, can.Option(nfs.PATH), file, "", next) - }, function() { files.length > 1 && can.onimport.tabview(can, paths[0], files[0], "") + can.onimport._tabview(can, can.Option(nfs.PATH), file, "", next) + }, function() { files.length > 1 && can.onimport._tabview(can, paths[0], files[0], "") if (can.user.isWebview) { var last = can.misc.localStorage(can, "web.code.inner:currentFile"); if (!last) { return } } - var ls = can.core.Split(last, ice.DF); ls.length > 0 && can.onmotion.delayLong(can, function() { can.onimport.tabview(can, ls[0], ls[1], ls[2]) }) + var ls = can.core.Split(last, ice.DF); ls.length > 0 && can.onmotion.delayLong(can, function() { can.onimport._tabview(can, ls[0], ls[1], ls[2]) }) }) }) } var hash = location.hash; can.db.tabview[can.onexport.keys(can)] = msg can.onimport.tabview(can, can.Option(nfs.PATH), can.Option(nfs.FILE), can.Option(nfs.LINE), function() { if (can.isCmdMode() && hash) { var args = can.core.Split(decodeURIComponent(hash).slice(1), ice.DF) - can.onmotion.delayLong(can, function() { can.onimport.tabview(can, args[args.length-3]||can.Option(nfs.PATH), args[args.length-2]||can.Option(nfs.FILE), args[args.length-1]) }) + can.onmotion.delayLong(can, function() { can.onimport._tabview(can, args[args.length-3]||can.Option(nfs.PATH), args[args.length-2]||can.Option(nfs.FILE), args[args.length-1]) }) } }), can.base.isFunc(cb) && cb(msg) }, + _tabview: function(can, path, file, line, cb) { var key = can.onexport.keys(can, path, file) + if (!can.user.isWebview) { + can.onimport.tabview(can, path, file, line, cb) + } else if (!can.db.tabview[key]) { can.onimport.tabview(can, path, file, line, cb), can.db.tabview[key] = true } + }, _keydown: function(can) { can.onkeymap._build(can), can._root.onengine.listen(can, chat.ONKEYDOWN, function(event) { if (can.onkeymap.selectCtrlN(event, can, can.ui.tabs, html.DIV_TABS)) { return } diff --git a/plugin/local/code/inner/syntax.js b/plugin/local/code/inner/syntax.js index 18cc5df9..06663bde 100644 --- a/plugin/local/code/inner/syntax.js +++ b/plugin/local/code/inner/syntax.js @@ -381,8 +381,10 @@ Volcanos(chat.ONSYNTAX, { }, }, json: {}, css: { - split: {operator: "{[(.,:;&>)]}"}, + split: {operator: "{[(.,:;&>=)]}"}, regexp: { + "[-0-9]+rem": code.CONSTANT, + "[-0-9]+deg": code.CONSTANT, "[-0-9]+px": code.CONSTANT, "[-0-9]+": code.CONSTANT, "#[^ ;]+": code.CONSTANT, @@ -392,6 +394,93 @@ Volcanos(chat.ONSYNTAX, { "/* ": code.COMMENT, }, keyword: { + "body": code.KEYWORD, + "legend": code.KEYWORD, + "select": code.KEYWORD, + "input": code.KEYWORD, + "textarea": code.KEYWORD, + "fieldset": code.KEYWORD, + "form": code.KEYWORD, + "type": code.FUNCTION, + "name": code.FUNCTION, + "table": code.KEYWORD, + "thead": code.KEYWORD, + "tbody": code.KEYWORD, + "tr": code.KEYWORD, + "th": code.KEYWORD, + "td": code.KEYWORD, + "div": code.KEYWORD, + "svg": code.KEYWORD, + "h1": code.KEYWORD, + "h2": code.KEYWORD, + "h3": code.KEYWORD, + + "white-space": code.FUNCTION, + "z-index": code.FUNCTION, + "box-sizing": code.FUNCTION, + "border-box": code.CONSTANT, + "padding": code.FUNCTION, + "border": code.FUNCTION, + "margin": code.FUNCTION, + "width": code.FUNCTION, + "height": code.FUNCTION, + "position": code.FUNCTION, + "display": code.FUNCTION, + "overflow": code.FUNCTION, + "top": code.FUNCTION, + "right": code.FUNCTION, + "sticky": code.CONSTANT, + "solid": code.CONSTANT, + "relative": code.CONSTANT, + "absolute": code.CONSTANT, + "lightgray": code.CONSTANT, + "min-width": code.FUNCTION, + "margin-right": code.FUNCTION, + "text-align": code.FUNCTION, + "margin-left": code.FUNCTION, + "padding-left": code.FUNCTION, + "border-top": code.FUNCTION, + "border-bottom": code.FUNCTION, + "font-family": code.FUNCTION, + "tab-size": code.FUNCTION, + "monospace": code.FUNCTION, + "transform": code.FUNCTION, + "rotate": code.FUNCTION, + "translate": code.FUNCTION, + "border-left": code.FUNCTION, + + "hover": code.DATATYPE, + + "background-color": code.FUNCTION, + "color": code.FUNCTION, + "font-size": code.FUNCTION, + "float": code.FUNCTION, + "clear": code.FUNCTION, + "center": code.CONSTANT, + "none": code.CONSTANT, + "both": code.CONSTANT, + "left": code.CONSTANT, + "black": code.CONSTANT, + "white": code.CONSTANT, + "cyan": code.CONSTANT, + "cadetblue": code.CONSTANT, + "steelblue": code.CONSTANT, + "skyblue": code.CONSTANT, + "span": code.KEYWORD, + "cursor": code.FUNCTION, + "box-shadow": code.FUNCTION, + "blue": code.CONSTANT, + "fixed": code.CONSTANT, + "yellow": code.CONSTANT, + "green": code.CONSTANT, + "gray": code.CONSTANT, + "red": code.CONSTANT, + "auto": code.CONSTANT, + "hidden": code.CONSTANT, + "block": code.CONSTANT, + "darkcyan": code.CONSTANT, + }, + keyword0: { "body": code.KEYWORD, "div": code.KEYWORD, "img": code.KEYWORD, diff --git a/plugin/local/code/vimer.css b/plugin/local/code/vimer.css index 3d9bee0c..4d1a015b 100644 --- a/plugin/local/code/vimer.css +++ b/plugin/local/code/vimer.css @@ -1,6 +1,6 @@ fieldset.vimer>div.output input.current { background-color:#00000000; color:#00000000; font-family:monospace; - padding-left:12px; border:none; outline:none; margin-top:-1px; height:22px; position:absolute; + padding-left:12px; border:none; outline:none; height:22px; position:absolute; } fieldset.vimer>div.output input.current.normal { caret-color:gray; } fieldset.vimer>div.output input.current.insert { caret-color:yellow; } diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index 679e9826..3848133c 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -15,14 +15,13 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { if (can.mode == mdb.NORMAL) { can.onkeymap.prevent(event), can.Status("按键", can.db._keylist.join("")) } }, onkeyup: function(event) { can.onaction._complete(event, can) }, onfocus: function() { var target = can.ui.complete; can.current.line.appendChild(target), can.onmotion.toggle(can, target, true) - can.page.style(can, target, html.LEFT, can.ui.current.offsetLeft-1, html.MARGIN_TOP, can.ui.current.offsetHeight-1) }, onblur: function(event) { can.onmotion.hidden(can, can.ui.complete) }, onclick: function(event) { can.onkeymap._insert(event, can) }}, code.COMPLETE, ]); can.ui.current = ui.current, can.ui.complete = ui.complete }, }, [""]) Volcanos(chat.ONFIGURE, { create: function(can, target, zone, path) { can.isCmdMode()? can.onappend._action(can, can.base.Obj(can._msg.Option(ice.MSG_ACTION)).concat( - ["favor", "git", "首页", "官网" , "文档" , "百度"], window.webview? ["录屏", "日志", "编辑器", "浏览器"]: [], + ["favor", "git", "首页", "官网" , "文档" , "百度"], window.webview? ["浏览器", "录屏", "日志", "编辑器"]: [] ), target): can.onmotion.hidden(can, target.parentNode) can.sup.onexport.link = function(can) { var args = can.Option(); args.topic = chat.BLACK var meta = can.Conf(); args.cmd = meta.index||can.core.Keys(meta.ctx, meta.cmd) @@ -198,7 +197,7 @@ Volcanos(chat.ONACTION, { }, _selectLine: function(can) { if (!can.current) { return } can.page.Select(can, can.current.line, "td.text", function(td) { var target = can.ui.current; target.value = td.innerText - can.current.line.appendChild(target), can.page.style(can, target, html.LEFT, td.offsetLeft-1, html.WIDTH, can.base.Min(td.offsetWidth, can.ui._content.offsetWidth)) + can.current.line.appendChild(target), can.page.style(can, target, html.LEFT, td.offsetLeft-1, html.TOP, td.offsetTop, html.WIDTH, can.base.Min(td.offsetWidth, can.ui._content.offsetWidth)) if (event && event.type == "click") { can.onkeymap._insert(event, can, 0, (event.offsetX)/12-1) } else { can.onaction.scrollHold(can, 0) } }) },