/** * @license Licensed under the Apache License, Version 2.0 (the "License"): * http://www.apache.org/licenses/LICENSE-2.0 * * @fileoverview CSS file for the Ardublockly application. * * There are a lot of '!important' tags in this file as a lot of the rules set * here go against the css rules from the Materialize framework. */ /******************/ /* Font sources */ /******************/ @font-face { font-family: "GT Walsheim Pro Trial"; src: url("font/gt/GT-Walsheim-Pro-Trial-Regular.otf") format("opentype"); } @font-face { font-family: "GT Walsheim Pro Trial Bold"; src: url("font/gt/GT-Walsheim-Pro-Trial-Bold.otf") format("opentype"); } /**********/ /* HTML */ /**********/ html, body { height: 100% !important; padding: 0; margin: 0; } body { background-color: #fff; -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } /*********************/ /* Arduino Colours */ /*********************/ .arduino_teal { background-color: #2c4fcd; } .arduino_teal_dark { background-color: #2c4fcd; /* background-color: #00878F; from community logo */ } .arduino_teal_light { background-color: #2c4fcd; } .arduino_orange { background-color: #E47128; } .arduino_yellow { /* background-color: rgba(255, 204, 51, 1); */ background-color: #f7c11e; /* background-color: #E5AD24; from community logo */ } .arduino_brown { background-color: #8C7965; } .arduino_red { background-color: #e03021; } /********************/ /* Navigation bar */ /********************/ .nav-fixed { border-radius: 0; position: inherit; margin-bottom: 30px; z-index: 997 !important; } @media only screen and (min-width: 993px) { body { padding-top: 64px; } .nav-fixed { position: fixed; right: 0; left: 0; top: 0; margin-bottom: 0px; z-index: 997; } } div.side-nav { background-color: #eeeeee; border-radius: 0px 0px 25px 0px; border-left: 4px solid #ffffff; border-bottom: 4px solid #dddddd; border-right: 4px solid #dddddd; border-bottom: 4px solid #dddddd; line-height: 25px; } /* Side nav Logo */ ul.side-nav li.logo { text-align: center; margin: 0px !important; padding: 0px 0px !important; border: none !important; height: 145px; background-color: transparent; } ul.side-nav li.logo:hover { background-color: transparent; } ul.side-nav li.side-menu-end { background-color: #eeeeee; border-radius: 0px 0px 25px 0px; border-left: 4px solid #ffffff; border-bottom: 4px solid #dddddd; border-right: 4px solid #dddddd; border-bottom: 4px solid #dddddd; line-height: 25px; } /************************************/ /* Blocks, Arduino, and XML areas */ /************************************/ .content { margin: 0; padding: 0; width: 100%; background-color: #ffffff; } .height_transition { transition: height 0.2s ease-out; -ms-transition: height 0.2s ease-out; -moz-transition: height 0.2s ease-out; -webkit-transition: height 0.2s ease-out; } #blocks_panel { padding: 0px; position: relative !important; min-height: 480px; } .blocks_panel_large { height: -moz-calc(100vh - 111px); /* Firefox */ height: -webkit-calc(100vh - 111px); /* WebKit */ height: -o-calc(100vh - 111px); /* Opera */ height: calc(100vh - 111px); /* Standard */ } .blocks_panel_small { height: -moz-calc(100vh - 350px); /* Firefox */ height: -webkit-calc(100vh - 350px); /* WebKit */ height: -o-calc(100vh - 350px); /* Opera */ height: calc(100vh - 350px); /* Standard */ } #content_blocks { margin: 0; padding: 0; min-height: 480px; height: -moz-calc(100vh - 111px); /* Firefox */ height: -webkit-calc(100vh - 111px); /* WebKit */ height: -o-calc(100vh - 111px); /* Opera */ height: calc(100vh - 111px); /* Standard */ } #content_xml { resize: none; outline: none; border: none; padding: 0px 0px; font-family: monospace; font-size: smaller; overflow: hidden; font-style: 0.2em !important; min-height: 384px; overflow: auto; } .content_xml_large { height: -moz-calc(100vh - 286px); /* Firefox */ height: -webkit-calc(100vh - 286px); /* WebKit */ height: -o-calc(100vh - 286px); /* Opera */ height: calc(100vh - 286px); /* Standard */ } .content_xml_small { height: -moz-calc(100vh - 446px); /* Firefox */ height: -webkit-calc(100vh - 446px); /* WebKit */ height: -o-calc(100vh - 446px); /* Opera */ height: calc(100vh - 446px); /* Standard */ } /* The materialize framework changes height of the div to show or hide */ /* the collapsible elements. */ #content_arduino { resize: none; outline: none; border: none; padding: 8px 8px; font-size: 0.9rem; font-family: monospace; overflow: auto; -moz-user-select: text; -khtml-user-select: text; -webkit-user-select: text; -ms-user-select: text; user-select: text; } .content_arduino_large { height: -moz-calc(100vh - 280px); /* Firefox */ height: -webkit-calc(100vh - 280px); /* WebKit */ height: -o-calc(100vh - 280px); /* Opera */ height: calc(100vh - 280px); /* Standard */ } .content_arduino_small { height: -moz-calc(100vh - 443px); /* Firefox */ height: -webkit-calc(100vh - 443px); /* WebKit */ height: -o-calc(100vh - 443px); /* Opera */ height: calc(100vh - 443px); /* Standard */ } /* serial monitor card form */ div.card-serialMonitor { height: 100%; width: auto; top: 0; right: 0; transition: 0.5s; padding-top: 0px; } .content_arduino_SMonitor { resize: none; outline: none; border: none; padding: 0px 0px; font-size: 0.9rem; font-family: Nunito, sans-serif; overflow: auto; -moz-user-select: text; -khtml-user-select: text; -webkit-user-select: text; -ms-user-select: text; user-select: text; } content_arduino_SMonitor textarea { height: -moz-calc(100vh - 595px); /* Firefox */ height: -webkit-calc(100vh - 595px); /* WebKit */ height: -o-calc(100vh - 595px); /* Opera */ height: calc(100vh - 595px); } /************************/ /* Modals and content */ /************************/ /* Large modal section blocks */ .modal_section { margin: 24px 0px; width: 100%; } /* Blocks tick label as a title */ .modal_label_title { font-size: 1.6rem !important; color: black; } /* Blocks modal divider */ #blocks_menu_body .divider { margin-top: 4px; margin-bottom: 8px; } /* Footer buttons padding */ .modal_right_button { margin: 0px 0px 0px 48px !important; } /* Small modal responsive design */ .modal_small { height: auto !important; min-height: 200px; } .modal_small .modal-content { margin-top: 0; padding-top: 12px; margin-bottom: 0; padding-bottom: 0; } .modal_small input { width: 100%; } .modal_small form { height: auto !important; min-height: 150px; } @media only screen and (min-width: 0) { .modal_small { max-width: 75% !important; width: 75% !important; } } @media only screen and (min-width: 601px) { .modal_small { max-width: 55% !important; width: 55% !important; } } @media only screen and (min-width: 993px) { .modal_small { max-width: 35% !important; width: 35% !important; } } /*******************************/ /* Modals for Serial Monitor */ /*******************************/ .modal_serialMonitor { height: auto !important; min-height: 200px; width: 500px; position: fixed; z-index: 1002; overflow: hidden; margin: 10px, 0, 10px, 0; } .modal_serialMonitor .modal-content { margin-top: 0; padding-top: 2px; margin-right: 0; padding-bottom: 1px; margin-bottom: 0; padding-bottom: 2px; margin-left: 0; padding-left: 1px; } .modal_serialMonitor .row { margin-top: 0; padding-top: 0; margin-right: 0; padding-bottom: 1px; margin-bottom: 0; padding-bottom: 0; margin-left: 0; padding-left: 1px; } .modal_serialMonitor input { width: 90%; } .modal_serialMonitor form { height: auto !important; min-height: 150px; } .modal_serialMonitor .btn, .btn-large, .btn-flat { border: none; border-radius: 1px; display: inline-block; height: 36px; line-height: 36px; padding: 0 1rem; text-transform: uppercase; vertical-align: middle; -webkit-tap-highlight-color: transparent; } /*******************************/ /* Sidebar for Serial Monitor */ /*******************************/ .side-nav-serialMonitor .btn-title { border: none; border-radius: 0.2px; display: inline-block; background-color: #ffffff; height: 36px; line-height: 36px; padding: 0 1rem; text-transform: uppercase; vertical-align: middle; -webkit-tap-highlight-color: transparent; } .side-nav-serialMonitor .btn, .btn-flat { border: none; border-radius: 0.2px; display: inline-block; height: 36px; line-height: 36px; padding: 0 1rem; vertical-align: middle; -webkit-tap-highlight-color: transparent; } .side-nav-serialMonitor .row { margin-top: 0; padding-top: 0; margin-right: 0; padding-bottom: 1px; margin-bottom: 3px; padding-bottom: 0; margin-left: 0; padding-left: 2px; } .side-nav-serialMonitor [type="checkbox"].filled-in:checked+label:after { top: 0; width: 20px; height: 20px; border: 2px solid #64B5F6; background-color: #64B5F6; z-index: 0; } /*******************************/ /* Card for sidebar icon */ /*******************************/ .card-icon-area { /* border-top: 1px solid #ddd; */ border-right: 1px solid #ddd; border-left: 6px solid #3258cd; /* border-bottom: 1px solid #ddd; */ background-color: #fff; margin: 0; width: 45px; height: auto !important; z-index: 995; overflow: hidden; } .card-icon { margin: 0; width: 40px; height: 40px; border-bottom: 1px solid #ddd; z-index: 9999; } /*******************************/ /* Card for Serial Monitor */ /*******************************/ .card-serialMonitor .btn-title { border: none; border-radius: 0.2px; display: inline-block; background-color: #ffffff; height: 36px; line-height: 36px; padding: 0 1rem; vertical-align: middle; -webkit-tap-highlight-color: transparent; } .card-serialMonitor .btn, .btn-flat { border: none; border-radius: 2px; display: inline-block; height: 35px; line-height: 32px; padding: 0.25rem 0.5rem; vertical-align: middle; -webkit-tap-highlight-color: transparent; } .card-serialMonitor .input-field { position: relative; margin-top: 0; } .card-serialMonitor .code-header { height: 45px; padding: 0px 6px; border-bottom: 1px solid #ddd; } .card-serialMonitor .code-header { color: #000200; } .card-serialMonitor .code-header .code-header-logo { width: 3rem; font-size: 1.6rem; line-height: 2.5rem; font-weight: bold; display: block; float: left; text-align: center; margin-right: 1rem; } .card-serialMonitor [type="checkbox"].filled-in:checked+label:after { top: 0; width: 20px; height: 20px; border: 2px solid #64B5F6; background-color: #64B5F6; } /*****************/ /* Sketch name */ /*****************/ .sketch_name_wrapper { display: inline-block; padding-left: 30px; } .sketch_name_icon { display: inline !important; font-size: 1.2rem !important; padding-top: 3px; margin-left: -5px; } .sketch_name { width: auto !important; max-width: 400px; line-height: 64px; height: 2rem !important; font-size: 1.2rem !important; border-bottom: 0px solid #EEE !important; font-style: italic; } .sketch_name:focus { border-bottom: 1px solid #EEE !important; } @media only screen and (min-width: 0px) and (max-width: 600px) { .sketch_name { max-width: 200px; } /* Remove the "Ardublockly title only leaving the sketch name */ .app_title { display: none; } } @media only screen and (min-width: 600px) { .sketch_name { max-width: 275px; } } @media only screen and (min-width: 993px) { .sketch_name { max-width: 350px; } } /************/ /* Others */ /************/ /* Edit logo for code and xml collapsibles */ .collapsible_logo { width: 3rem; font-size: 1.6rem; line-height: 3rem; font-weight: bold; display: block; float: left; text-align: center; margin-right: 1rem; } /* Colours for the new and deleted code highlighting */ .code_highlight_new { background-color: rgba(255, 204, 51, 0.5); /* Arduino yellow 50% */ } .code_highlight_deleted { background-color: #FDBEBE; } /*****************************/ /* Overwriting Blockly CSS */ /*****************************/ /* Blockly text for the following components: */ .blocklyTreeLabel, /* Toolbox */ .blocklyText, /* Block */ .goog-menuitem-content { /* Drop down menu */ font-family: "Nunito", sans-serif!important; } /* Entire Blockly area, Toolbox dranw on top */ .blocklySvg { border-width: 0 !important; } /* Toolbox */ .blocklyToolboxDiv { border-color: #fcfcfc !important; border-width: 0px 1px 0px 0px !important; -webkit-border-radius: 0px 4px 4px 0px !important; -moz-border-radius: 4px 4px 0px 0px !important; border-radius: 0px 4px 4px 0px !important; border: none !important; margin: 0px !important; padding: 0px 0px 0px 0px !important; background: rgba(236, 241, 247, 0.8) !important; /* background: rgba(47, 105, 202, .05) !important; */ -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.05), 0 2px 10px 0 rgba(0, 0, 0, 0.05); -moz-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.05), 0 2px 10px 0 rgba(0, 0, 0, 0.05); box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.05), 0 2px 10px 0 rgba(0, 0, 0, 0.05); overflow: hidden !important; } .blocklyTreeRoot { background: none !important; border: none !important; /*margin: 36px 0px 0px 0px !important;*/ margin: 0px 0px 0px 0px !important; padding: 0px 1px !important; height: 100%; /* Standard */ overflow-x: hidden; overflow-y: auto; } .blocklyTreeRow { background: none !important; border: none !important; margin: 0px 0px !important; padding: 0px 16px 0px 0px !important; box-sizing: content-box !important; padding-left: 0px !important; } .blocklyTreeSelected { background-color: rgba(208, 240, 255, 0.75) !important; /* arduino orange */ border: 5px #000 solid; } .blocklyTreeRow:not(.blocklyTreeSelected):hover, .blocklyTreeRowHover { background-color: rgba(208, 240, 255, 0.75) !important; /* arduino yellow */ } .blocklyTreeSeparator { padding: 0px !important; margin: 0px !important; } /* Toolbox second column with blocks*/ .blocklyFlyoutBackground { fill: #d0f0ffbf !important; fill-opacity: 0.9 !important; -webkit-border-radius: 0px 4px 4px 0px !important; -moz-border-radius: 0px 4px 4px 0px !important; border-radius: 0px 4px 4px 0px !important; } /* Blockly scrollbars */ .blocklyScrollbarKnob { fill: #a1b2f0 !important; fill-opacity: 0.7 !important; } .blocklyScrollbarBackground { stroke-width: 0px !important; fill: none !important; } /*********************************/ /* Overwriting Materialize CSS */ /*********************************/ /* Modify container to have a larger width in all resolutions */ .container { width: 90%; max-width: initial !important; /*padding-left: 1.5rem; padding-right: 1.5rem;*/ z-index: 997; } .navcontainer { width: 90%; max-width: initial !important; padding-left: 1.5rem; padding-right: 1.5rem; z-index: 997; } @media only screen and (min-width: 601px) { .container { width: 95%; } } @media only screen and (min-width: 993px) { .container { width: 100%; } } @media only screen and (min-width: 1380px) { .container { width: 100%; } } /* Maximize horizontal space for mobile */ @media only screen and (min-width: 0px) and (max-width: 600px) { body { padding-top: 0px; } /* Expand to all visible horizontal space */ .container { width: 100% !important; padding: 0 !important; margin: 0 !important; } nav { margin: 0 !important; padding: 0px 12px !important; } /* remove space between cards and navigation bar */ .col { margin-top: -8px; } } /* Increase the text size of the side menu */ div.side-nav { padding: 0px !important; line-height: 100px !important; } ul.side-nav { padding: 0px !important; line-height: 64px !important; } ul.side-nav i { font-size: 1.8rem !important; } ul.side-nav .collapsible { margin: 0 !important; } /* Set the background effect in the side menu */ ul.side-nav { background-color: transparent; box-shadow: none !important; } ul.side-nav li { background-color: #eeeeee; } ul.side-nav li { background-color: #eeeeee; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; border-right: 2px solid #dddddd; border-left: 2px solid #ffffff; } ul.side-nav li ul li ul { cursor: pointer; border: none !important; } ul.side-nav li ul li ul li { border: none !important; } /* Add extra margin to the side menu button*/ .button-collapse { margin-right: 16px; } /* Increase the size of Materialize Modal in small resolutions */ @media only screen and (max-width: 600px) { .modal { width: 80% !important; max-width: 80% !important; } } /* Why the hell does button large has a predefined background colour !! */ .btn-large:hover { background-color: inherit; } /* Circle clipper (loading animation) thickness */ .circle-clipper .circle { border-width: 4px; } /* Materialize messes with these, so reset them here */ .blocklyHtmlInput { border: none !important; border-radius: 4px !important; font-family: sans-serif !important; height: 100% !important; margin: 0 !important; outline: none !important; padding: 0 1px !important; width: 100% !important; background-color: white !important; } /*set switch button color*/ .switch { margin-right: 10px; } .switch label .lever:after { background-color: #4d8bed; } .switch label .lever { background-color: #D7D7D7; } .switch label input[type=checkbox]:checked+.lever { background-color: #26a69a; } .switch label input[type=checkbox]:checked+.lever:after { background-color: #26a69a; } /* add indicator to toolbox items */ #\:1 { border-left: 10px solid #4c97ff; border-bottom: 1px solid #eaeaea; } /* list */ #\:3 { border-left: 10px solid #9d64fd; border-bottom: 1px solid #eaeaea; } /* loops */ #\:5 { border-left: 10px solid #5472ea; border-bottom: 1px solid #eaeaea; } /* math */ #\:7 { border-left: 10px solid #ffab2f; border-bottom: 1px solid #eaeaea; } /* variables */ #\:9 { border-left: 10px solid #33cc99; border-bottom: 1px solid #eaeaea; } /* text */ #\:b { border-left: 10px solid #40bfe4; border-bottom: 1px solid #eaeaea; } /* lists */ #\:d { border-left: 10px solid #ff6381; border-bottom: 1px solid #eaeaea; } /* functions */ #\:f { border-left: 10px solid #ff8b2c; border-bottom: 1px solid #eaeaea; } /* i/o */ #\:h { border-left: 10px solid #ffd62c; border-bottom: 1px solid #eaeaea; } /* time */ #\:j { border-left: 10px solid #27c04f; border-bottom: 1px solid #eaeaea; } /* communication */ #\:l { padding-top: 0px; border-left: #50ec7a } /*newly added*/ /* .blocklyTreeSelected { background-color: #2c4fce !important; }*/ #\:l>.blocklyTreeRow { background-color: #4d8bed !important; color: #ffffff; } /* add indicator to wifi_toolbox items */ /* logic */ #\:2a { border-left: 10px solid #4c97ff; border-bottom: 1px solid #eaeaea; } /* loops */ #\:2c { border-left: 10px solid #9d64fd; border-bottom: 1px solid #eaeaea; } /* math */ #\:2e { border-left: 10px solid #5472ea; border-bottom: 1px solid #eaeaea; } /* variables */ #\:2g { border-left: 10px solid #ffab2f; border-bottom: 1px solid #eaeaea; } /* text */ #\:2i { border-left: 10px solid #33cc99; border-bottom: 1px solid #eaeaea; } /* lists */ #\:2k { border-left: 10px solid #40bfe4; border-bottom: 1px solid #eaeaea; } /* functions */ #\:2m { border-left: 10px solid #ff6381; border-bottom: 1px solid #eaeaea; } /* time */ #\:2o { border-left: 10px solid #ffd62c; border-bottom: 1px solid #eaeaea; } /* communication */ #\:2q { border-left: 10px solid #27c04f; border-bottom: 1px solid #eaeaea; } #\:2s { padding-top: 0px; } #\:2s>.blocklyTreeRow { background-color: #e44c4c !important; color: #ffffff; } .switch_tooltip { top: -10px; background-color: black; color: white; border-radius: 5px; opacity: 0; position: absolute; -webkit-transition: opacity 0.5s; -moz-transition: opacity 0.5s; -ms-transition: opacity 0.5s; -o-transition: opacity 0.5s; transition: opacity 0.5s; } .switch:hover .tooltip { opacity: 1; } .add_margin { margin: 0 10px 0 10px; } .blocklyTreeRoot { height: 100%; } .resize { width: 90%; margin: 10px 5% 10px 5%; height: 30px; background-color: #5b8ae7; } .languages_logo { width: 36px; margin-top: 14px; } .lang_resize { height: 64px; } .status_detector { display: inline-block; margin-left: 50px; } .board_detector, .port_detector { display: inline-block; /*overwrite modal_section class*/ margin: 0 10px; width: auto; } .board_detector { width: 250px; } .button_toggle_toolbox_on { position: absolute; margin: 0 !important; padding: 0 !important; left: 12px; top: 8px; text-align: center; font-size: 1.5rem !important; z-index: 5; border-color: #e0e0e0 !important; border-width: 1px !important; -webkit-border-radius: 4px 4px 4px 4px !important; -moz-border-radius: 4px 4px 4px 4px !important; border-radius: 4px 4px 4px 4px !important; background: rgba(98, 174, 178, .2) !important; /* Arduino Light Teal */ -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); -moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); transition: background 0.3s linear, box-shadow 0.3s linear, border-width 0.3s linear; -ms-transition: background 0.3s linear, box-shadow 0.3s linear, border-width 0.3s linear; -moz-transition: background 0.3s linear, -moz-box-shadow 0.3s linear, border-width 0.3s linear; -webkit-transition: background 0.3s linear, -webkit-box-shadow 0.3s linear, border-width 0.3s linear; } .button_toggle_toolbox_off { position: absolute; margin: 0 !important; padding: 0px !important; left: 12px; top: 8px; text-align: center; font-size: 1.5rem !important; z-index: 5; }