UNPKG

pxt-microbit

Version:

micro:bit target for Microsoft MakeCode (PXT)

1 lines • 29 kB
{"id":"microbit","nickname":"microbit","name":"makecode.microbit.org","title":"Microsoft MakeCode for micro:bit","description":"A Blocks / JavaScript code editor for the micro:bit powered by Microsoft MakeCode.","corepkg":"core","cloud":{"workspace":false,"packages":true,"sharing":true,"thumbnails":true,"publishing":true,"importing":true,"showBadges":false,"preferredPackages":["Microsoft/pxt-neopixel"],"githubPackages":true,"cloudProviders":{"github":{"id":"github","name":"GitHub","icon":"./static/providers/github-mark.png","identity":false,"order":3},"microsoft":{"id":"microsoft","name":"Microsoft","icon":"./static/providers/microsoft-logo.svg","identity":true,"redirect":true,"order":1},"google":{"id":"google","name":"Google","icon":"./static/providers/google-logo.svg","identity":true,"redirect":true,"order":2},"clever":{"id":"clever","name":"Clever","icon":"./static/providers/clever-logo.png","identity":true,"redirect":true,"order":3}}},"compile":{"isNative":false,"hasHex":true,"deployDrives":"(MICROBIT|MBED)","driveName":"MICROBIT","hexMimeType":"application/x-microbit-hex","openocdScript":"source [find interface/cmsis-dap.cfg]; source [find target/nrf51.cfg]","flashUsableEnd":242688,"flashEnd":242688,"flashCodeAlign":1024,"floatingPoint":true,"taggedInts":true,"utf8":false,"gc":true,"imageRefTag":9,"shimRenames":{"sendBufferAsm":"light::sendWS2812Buffer"},"patches":{"0.0.0 - 1.0.0":[{"type":"package","map":{"microbit":"core","microbit-bluetooth":"bluetooth","microbit-radio":"radio","microbit-devices":"devices","microbit-led":"","microbit-music":"","microbit-game":"","microbit-pins":"","microbit-serial":""}},{"type":"missingPackage","map":{"radio\\s*\\.":"radio","bluetooth\\s*\\.":"bluetooth","devices\\s*\\.":"devices"}},{"type":"api","map":{"bluetooth\\s*\\.\\s*uartRead\\s*\\((.*?)\\)":"bluetooth.uartReadUntil($1)","bluetooth\\s*\\.\\s*uartWrite\\s*\\((.*?)\\)":"bluetooth.uartWriteUntil($1)","input\\s*\\.\\s*calibrate\\s*\\(":"input.calibrateCompass(","radio\\s*\\.\\s*onDataPacketReceived\\(\\s*\\(\\{\\s*receivedNumber\\s*\\}\\)\\s*=>\\s*\\{":"radio.onReceivedNumber(function (receivedNumber) {","radio\\s*\\.\\s*onDataPacketReceived\\(\\s*\\(\\{\\s*receivedString: name, receivedNumber: value\\s*\\}\\)\\s*=>\\s*\\{":"radio.onReceivedValue(function (name, value) {","radio\\s*\\.\\s*onDataPacketReceived\\(\\s*\\(\\{\\s*receivedString\\s*\\}\\)\\s*=>\\s*\\{":"radio.onReceivedString(function (receivedString) {","Math\\s*\\.\\s*random\\s*\\(":"Math.randomRange(0, "}},{"type":"blockId","map":{"device_get_acceleration":"device_acceleration"}},{"type":"blockValue","map":{"device_print_message.message":"text"}}],"0.0.0 - 1.4.12":[{"type":"api","map":{"DisplayMode\\s*\\.\\s*BackAndWhite":"DisplayMode.BlackAndWhite"}}],"0.0.0 - 3.1.10":[{"type":"package","map":{"pxt-microbit-v2-extension":"microphone"}}],"0.0.0 - 3.0.18":[{"type":"missingPackage","map":{".*":"microphone"}}]},"hidSelectors":[{"usagePage":"0xFF00","usageId":"0x0001","vid":"0x0d28","pid":"0x0204"}],"webUSB":true,"useNewFunctions":true,"nativeType":"thumb","switches":{},"jsRefCounting":false,"noSourceInFlash":true},"compileService":{"yottaTarget":"bbc-microbit-classic-gcc@https://github.com/lancaster-university/yotta-target-bbc-microbit-classic-gcc","yottaCorePackage":"microbit","githubCorePackage":"lancaster-university/microbit","gittag":"v2.2.0-rc6","serviceId":"microbit","dockerImage":"pext/yotta:gcc5","yottaBinary":"pxt-microbit-app-combined.hex"},"multiVariants":["mbdal","mbcodal"],"alwaysMultiVariant":true,"variants":{"mbdal":{"compile":{},"compileService":{}},"mbcodal":{"compile":{"flashCodeAlign":4096,"flashUsableEnd":471040,"flashEnd":524288},"compileService":{"buildEngine":"codal","codalTarget":{"name":"codal-microbit-v2","url":"https://github.com/lancaster-university/codal-microbit-v2","branch":"v0.3.2","type":"git"},"codalBinary":"MICROBIT","githubCorePackage":"lancaster-university/microbit-v2-samples","gittag":"v0.2.13","serviceId":"mbcodal2","dockerImage":"pext/yotta:latest","yottaConfigCompatibility":true}}},"runtime":{"mathBlocks":true,"loopsBlocks":true,"logicBlocks":true,"variablesBlocks":true,"textBlocks":true,"listsBlocks":true,"functionBlocks":true,"breakBlock":true,"continueBlock":true,"functionsOptions":{"useNewFunctions":true,"extraFunctionEditorTypes":[{"typeName":"game.LedSprite","label":"LedSprite","icon":"send","defaultName":"sprite"},{"typeName":"Image","label":"Image","icon":"image outline","defaultName":"image"}]},"onStartColor":"#1E90FF","onStartNamespace":"basic","onStartWeight":54},"simulator":{"autoRun":true,"streams":false,"aspectRatio":1.22,"parts":true,"partsAspectRatio":0.69,"messageSimulators":{"jacdac":{"url":"https://microsoft.github.io/jacdac-docs/tools/makecode-sim?webusb=0&parentOrigin=$PARENT_ORIGIN$","localHostUrl":"http://localhost:8000/tools/makecode-sim?webusb=0&parentOrigin=$PARENT_ORIGIN$","aspectRatio":1.22,"permanent":true},"robot":{"url":"https://microsoft.github.io/microbit-robot/?parentOrigin=$PARENT_ORIGIN$","localHostUrl":"http://localhost:3000/microbit-robot/?parentOrigin=$PARENT_ORIGIN$","aspectRatio":1.22,"permanent":true}},"testSimulatorExtensions":{},"boardDefinition":{"visual":"microbit","gpioPinBlocks":[["P0"],["P1"],["P2"],["P3"],["P4","P5","P6","P7"],["P8","P9","P10","P11","P12"],["P16"]],"gpioPinMap":{"P0":"P0","P1":"P1","P2":"P2","P3":"P3","P4":"P4","P5":"P5","P6":"P6","P7":"P7","P8":"P8","P9":"P9","P10":"P10","P11":"P11","P12":"P12","P13":"P13","P14":"P14","P15":"P15","P16":"P16","P19":"P19","P20":"P20"},"spiPins":{"MOSI":"P15","MISO":"P14","SCK":"P13"},"i2cPins":{"SDA":"P20","SCL":"P19"},"analogInPins":["P0","P1","P2","P3","P10"],"groundPins":["GND"],"threeVoltPins":["+3v3"],"attachPowerOnRight":true,"onboardComponents":["accelerometer","buttonpair","ledmatrix","speaker","bluetooth","thermometer","compass","builtinspeaker","microphone","logotouch","flashlog","v2"],"pinStyles":{"P0":"croc","P1":"croc","P2":"croc","GND":"croc","+3v3":"croc"},"marginWhenBreadboarding":[0,0,80,0]}},"serial":{"nameFilter":"^(mbed Serial Port|DAPLink CMSIS-DAP)","log":true,"useEditor":true,"editorTheme":{"graphBackground":"#d9d9d9","lineColors":["#6633cc","#2C7485","#3454D1","#EF767A","#F46197","#107C10"]},"vendorId":"0x0d28","productId":"0x0204","rawHID":true},"queryVariants":{"hidemenu":{"appTheme":{"hideMenuBar":true}},"hidelanguage":{"appTheme":{"selectLanguage":false}},"androidapp":{"compile":{"webUSB":false},"appTheme":{"disableBlobObjectDownload":true}},"skillsMap=1":{"appTheme":{"hideReplaceMyCode":false}},"teachertool=1":{"appTheme":{"hideMenuBar":true,"workspaceSearch":true,"noReloadOnUpdate":true}}},"uploadDocs":true,"versions":{"branch":"stable8.0","tag":"v8.0.15","commits":"https://github.com/microsoft/pxt-microbit/commits/1908ef044d727bb983d165f41e9b1ae61b18ede4","target":"8.0.15","pxt":"12.0.16"},"blocksprj":{"id":"blocksprj","config":{"name":"{0} block","dependencies":{"core":"*","radio":"*","microphone":"*"},"description":"","files":["main.blocks","main.ts","README.md"],"additionalFilePaths":[]},"files":{"README.md":"","main.blocks":"<xml xmlns=\"http://www.w3.org/1999/xhtml\">\n <block type=\"pxt-on-start\"></block>\n <block type=\"device_forever\"></block>\n</xml>","main.ts":"\n"}},"tsprj":{"id":"tsprj","config":{"name":"{0} bit","dependencies":{"core":"*","radio":"*","microphone":"*"},"description":"","files":["main.ts","README.md"],"additionalFilePaths":[]},"files":{"README.md":"","main.ts":"basic.showLeds(`\n . . . . .\n . # . # .\n . . . . .\n # . . . #\n . # # # .\n `);"}},"colorThemeMap":{"pxt-high-contrast":{"id":"pxt-high-contrast","name":"High Contrast","weight":100,"monacoBaseTheme":"hc-black","colors":{"pxt-header-background":"#000000","pxt-header-foreground":"#FFFFFF","pxt-header-background-hover":"#000000","pxt-header-foreground-hover":"#FFFFFF","pxt-header-stencil":"#FFFFFF","pxt-primary-background":"#000000","pxt-primary-foreground":"#FFFFFF","pxt-primary-background-hover":"#000000","pxt-primary-foreground-hover":"#FFFFFF","pxt-primary-accent":"#000000","pxt-secondary-background":"#000000","pxt-secondary-foreground":"#FFFFFF","pxt-secondary-background-hover":"#000000","pxt-secondary-foreground-hover":"#FFFFFF","pxt-secondary-accent":"#000000","pxt-tertiary-background":"#000000","pxt-tertiary-foreground":"#FFFFFF","pxt-tertiary-background-hover":"#000000","pxt-tertiary-foreground-hover":"#FFFFFF","pxt-tertiary-accent":"#000000","pxt-target-background1":"#000000","pxt-target-foreground1":"#FFFFFF","pxt-target-background1-hover":"#000000","pxt-target-foreground1-hover":"#cccccc","pxt-target-stencil1":"#FFFFFF","pxt-target-background2":"#000000","pxt-target-foreground2":"#FFFFFF","pxt-target-background2-hover":"#000000","pxt-target-foreground2-hover":"#cccccc","pxt-target-stencil2":"#FFFFFF","pxt-target-background3":"#000000","pxt-target-foreground3":"#FFFFFF","pxt-target-background3-hover":"#000000","pxt-target-foreground3-hover":"#cccccc","pxt-target-stencil3":"#FFFFFF","pxt-neutral-background1":"#000000","pxt-neutral-foreground1":"#FFFFFF","pxt-neutral-background1-hover":"#000000","pxt-neutral-foreground1-hover":"#FFFFFF","pxt-neutral-stencil1":"#FFFFFF","pxt-neutral-background2":"#000000","pxt-neutral-foreground2":"#FFFFFF","pxt-neutral-background2-hover":"#000000","pxt-neutral-foreground2-hover":"#FFFFFF","pxt-neutral-stencil2":"#FFFFFF","pxt-neutral-background3":"#000000","pxt-neutral-foreground3":"#FFFFFF","pxt-neutral-background3-hover":"#000000","pxt-neutral-foreground3-hover":"#FFFFFF","pxt-neutral-stencil3":"#FFFFFF","pxt-neutral-background3-alpha90":"#000000E5","pxt-neutral-base":"rgba(255, 255, 255, 1)","pxt-neutral-alpha0":"rgba(255, 255, 255, 0)","pxt-neutral-alpha10":"rgba(255, 255, 255, 0.1)","pxt-neutral-alpha20":"rgba(255, 255, 255, 0.2)","pxt-neutral-alpha50":"rgba(255, 255, 255, 0.5)","pxt-neutral-alpha80":"rgba(255, 255, 255, 0.8)","pxt-link":"#807FFF","pxt-link-hover":"#1b19ff","pxt-focus-border":"#FFFF00","pxt-success":"#00FF00","pxt-success-foreground":"#000000","pxt-success-hover":"#00FF00","pxt-success-alpha10":"#00FF0019","pxt-warning":"#00FFFF","pxt-warning-foreground":"#FFFFFF","pxt-warning-hover":"#00FFFF","pxt-warning-alpha10":"#00FFFF19","pxt-error":"#880000","pxt-error-foreground":"#FFFFFF","pxt-error-hover":"#880000","pxt-error-alpha10":"#88000019","pxt-colors-purple-background":"#FF00FF","pxt-colors-purple-foreground":"#000000","pxt-colors-purple-hover":"#FF00FF","pxt-colors-purple-alpha10":"#FF00FF19","pxt-colors-orange-background":"#FF7F00","pxt-colors-orange-foreground":"#000000","pxt-colors-orange-hover":"#FF7F00","pxt-colors-orange-alpha10":"#FF7F0019","pxt-colors-brown-background":"#d1b7a3","pxt-colors-brown-foreground":"#FFFFFF","pxt-colors-brown-hover":"#d1b7a3","pxt-colors-brown-alpha10":"#d1b7a319","pxt-colors-blue-background":"#0078D7","pxt-colors-blue-foreground":"#FFFFFF","pxt-colors-blue-hover":"#0086F1","pxt-colors-blue-alpha10":"#0078D719","pxt-colors-green-background":"#00FF00","pxt-colors-green-foreground":"#000000","pxt-colors-green-hover":"#00FF00","pxt-colors-green-alpha10":"#00FF0019","pxt-colors-red-background":"#880000","pxt-colors-red-foreground":"#FFFFFF","pxt-colors-red-hover":"#880000","pxt-colors-red-alpha10":"#88000019","pxt-colors-teal-background":"#5BE0FF","pxt-colors-teal-foreground":"#000000","pxt-colors-teal-hover":"#5BE0FF","pxt-colors-teal-alpha10":"#5BE0FF19","pxt-colors-yellow-background":"#FFFF00","pxt-colors-yellow-foreground":"#000000","pxt-colors-yellow-hover":"#FFFF00","pxt-colors-yellow-alpha10":"#FFFF0019"},"overrideCss":".common-button {\n color: var(--pxt-neutral-foreground2) !important;\n background-color: var(--pxt-neutral-background2) !important;\n border-color: var(--pxt-neutral-foreground2) !important;\n}\n\n.common-button:hover, .common-button:focus {\n outline: 2px solid var(--pxt-colors-yellow-background) !important;\n z-index: 1;\n}\n\n.area-menu-container .area-button {\n /*\n Override default button background for the area menu, which requires transparency,\n but still use a fairly opaque one to keep focus/visibility on the main buttons.\n */\n background-color: var(--pxt-neutral-alpha80) !important;\n}\n\n/* \n * Checkbox styles\n * In HC the neutral and primary colors are the same, so we need to differentiate with\n * a different background color when checked.\n */\n.common-checkbox.toggle input:checked~label:before,\ndiv.field .ui.toggle.checkbox input:checked~label:before {\n background-color: var(--pxt-colors-purple-background) !important;\n}\n\n.common-checkbox-icon.checked {\n background-color: var(--pxt-colors-purple-background);\n color: var(--pxt-colors-purple-foreground);\n border-color: var(--pxt-colors-purple-hover);\n}\n\n.common-checkbox-icon.checked i.fas.fa-check {\n color: var(--pxt-colors-purple-foreground);\n}\n\n/*\n * Make toggle \"handle\" more visible for HC\n */\n.common-checkbox.toggle label:after {\n background-color: var(--pxt-neutral-foreground1) !important;\n}\n\n/*\n * Selection highlights\n */\n\n.blocklyContextMenu {\n border: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n.blocklyWidgetDiv .blocklyMenu.blocklyContextMenu .blocklyMenuItem.blocklyMenuItemHighlight {\n border: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n/*\n * Toolbox\n */\n.blocklyTreeRow:hover {\n outline: 3px solid var(--pxt-colors-yellow-background) !important;\n}\n\n/* \n * Inverted image colors\n */\n.barcharticon,\n.blockly-ws-search-next-btn,\n.blockly-ws-search-previous-btn,\n.blockly-ws-search-close-btn {\n filter: invert(1);\n}\n\n/* Sim toolbar */\n#simulator .editor-sidebar .simtoolbar .debug-button.active,\n#simulator .editor-sidebar .simtoolbar .debug-button.active:hover,\n#simulator .editor-sidebar .simtoolbar .debug-button.active:hover i {\n /* Make active state more apparent by inverting the colors */\n background: var(--pxt-neutral-foreground2) !important;\n color: var(--pxt-neutral-background2) !important;\n}\n\n/* Image Editor */\n.image-editor-topbar, .image-editor-bottombar, .image-editor-sidebar {\n background: var(--pxt-neutral-background1) !important;\n}\n.image-editor-tool-buttons {\n background: none !important;\n}\n.image-editor-button,\n.image-editor-input,\n.image-editor-confirm {\n border: 1px solid var(--pxt-neutral-foreground1);\n}\n.image-editor-canvas, .image-editor-canvas:hover, .image-editor-canvas:focus {\n outline: none !important;\n}\n.cursor-button {\n /* remove margin since we now have a border around the cursor buttons and it looks better centered */\n margin-right: 0;\n}\n\n/* Toolbox */\n.pxtToolbox:not(.invertedToolbox) span.blocklyTreeLabel {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeSelected span.blocklyTreeLabel,\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeSelected span.blocklyTreeIcon {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected) .blocklyTreeLabel {\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected):hover,\n.pxtToolbox:not(.invertedToolbox) .blocklyTreeRow:not(.blocklyTreeSelected):focus {\n background-color: #404040;\n}\n\n.blocksEditorOuter #blocklyTrashIcon {\n color: var(--pxt-primary-foreground);\n}\n\n/*\n * Teaching Bubbles\n */\n.teaching-bubble,\n.teaching-bubble .teaching-bubble-navigation-buttons > .common-button {\n background: var(--pxt-neutral-background1) !important;\n color: var(--pxt-neutral-foreground1) !important;\n border: solid var(--pxt-neutral-foreground1) !important;\n}\n\n.teaching-bubble-cutout {\n border: 0.25rem solid var(--pxt-neutral-alpha20);\n}\n\n.teaching-bubble .ai-footer {\n opacity: 1 !important;\n}\n\n.teaching-bubble-arrow,\n.teaching-bubble .ai-footer-text,\n.teaching-bubble .feedback-button,\n.teaching-bubble .feedback-button.disabled,\n.teaching-bubble .teaching-bubble-steps {\n color: var(--pxt-neutral-foreground1) !important;\n}\n\n/*\n * Side Docs\n */\n\n#sidedocs {\n background-color: var(--pxt-neutral-foreground1);\n}\n\n#sidedocsbar a i,\n#sidedocsbar a span {\n color: var(--pxt-neutral-background1) !important;\n}\n\n#sidedocsbar a:hover,\n#sidedocsbar a:focus {\n /* Yellow does not contrast well against white background */\n outline: 3px solid var(--pxt-neutral-background1) !important;\n}\n\n#sidedocsbar a:hover i,\n#sidedocsbar a:focus i,\n#sidedocsbar a:hover span,\n#sidedocsbar a:focus span {\n color: var(--pxt-link-hover) !important;\n}"},"microbit-dark":{"id":"microbit-dark","name":"Dark","weight":60,"monacoBaseTheme":"vs-dark","colors":{"pxt-header-background":"#181818","pxt-header-foreground":"#ffffff","pxt-header-background-hover":"#252525","pxt-header-foreground-hover":"#ffffff","pxt-header-stencil":"#323232","pxt-primary-background":"#0078D4","pxt-primary-foreground":"#ffffff","pxt-primary-background-hover":"#026EC1","pxt-primary-foreground-hover":"#ffffff","pxt-primary-accent":"#005ba1","pxt-secondary-background":"#63276d","pxt-secondary-foreground":"#f3f2f1","pxt-secondary-background-hover":"#742e80","pxt-secondary-foreground-hover":"#f3f2f1","pxt-secondary-accent":"#411a47","pxt-tertiary-background":"#0078d4","pxt-tertiary-foreground":"#ffffff","pxt-tertiary-background-hover":"#026EC1","pxt-tertiary-foreground-hover":"#ffffff","pxt-tertiary-accent":"#0894ff","pxt-target-background1":"#2d2d2d","pxt-target-foreground1":"#f3f2f1","pxt-target-background1-hover":"#202020","pxt-target-foreground1-hover":"#ffffff","pxt-target-stencil1":"#3b3a39","pxt-target-background2":"#181818","pxt-target-foreground2":"#ffffff","pxt-target-background2-hover":"#252525","pxt-target-foreground2-hover":"#ffffff","pxt-target-stencil2":"#323232","pxt-target-background3":"#1F1F1F","pxt-target-foreground3":"#ffffff","pxt-target-background3-hover":"#252525","pxt-target-foreground3-hover":"#ffffff","pxt-target-stencil3":"#323232","pxt-neutral-background1":"#1F1F1F","pxt-neutral-foreground1":"#f3f2f1","pxt-neutral-background1-hover":"#2c2c2c","pxt-neutral-foreground1-hover":"#ffffff","pxt-neutral-stencil1":"#3b3a39","pxt-neutral-background2":"#181818","pxt-neutral-foreground2":"#ffffff","pxt-neutral-background2-hover":"#252525","pxt-neutral-foreground2-hover":"#ffffff","pxt-neutral-stencil2":"#3b3a39","pxt-neutral-background3":"#202020","pxt-neutral-foreground3":"#f3f2f1","pxt-neutral-background3-hover":"#131313","pxt-neutral-foreground3-hover":"#ffffff","pxt-neutral-stencil3":"#070707","pxt-neutral-background3-alpha90":"#202020e6","pxt-neutral-base":"rgba(180, 180, 180, 1)","pxt-neutral-alpha0":"rgba(180, 180, 180, 0)","pxt-neutral-alpha10":"rgba(180, 180, 180, 0.1)","pxt-neutral-alpha20":"rgba(180, 180, 180, 0.2)","pxt-neutral-alpha50":"rgba(180, 180, 180, 0.5)","pxt-neutral-alpha80":"rgba(180, 180, 180, 0.8)","pxt-link":"#479ef5","pxt-link-hover":"#62abf5","pxt-focus-border":"#5caae5","pxt-colors-purple-background":"#63276d","pxt-colors-purple-foreground":"#f3f2f1","pxt-colors-purple-hover":"#742e80","pxt-colors-purple-alpha10":"#63276d19","pxt-colors-orange-background":"#7a2101","pxt-colors-orange-foreground":"#ffffff","pxt-colors-orange-hover":"#932801","pxt-colors-orange-alpha10":"#7a210119","pxt-colors-brown-background":"#50301a","pxt-colors-brown-foreground":"#ffffff","pxt-colors-brown-hover":"#633c20","pxt-colors-brown-alpha10":"#50301a19","pxt-colors-blue-background":"#0078D4","pxt-colors-blue-foreground":"#ffffff","pxt-colors-blue-hover":"#026EC1","pxt-colors-blue-alpha10":"#0078D419","pxt-colors-green-background":"#27ae60","pxt-colors-green-foreground":"#ffffff","pxt-colors-green-hover":"#1e8449","pxt-colors-green-alpha10":"#27ae6019","pxt-colors-red-background":"#e74c3c","pxt-colors-red-foreground":"#ffffff","pxt-colors-red-hover":"#c0392b","pxt-colors-red-alpha10":"#e74c3c19","pxt-colors-teal-background":"#1abc9c","pxt-colors-teal-foreground":"#ffffff","pxt-colors-teal-hover":"#16a085","pxt-colors-teal-alpha10":"#1abc9c19","pxt-colors-yellow-background":"#fde300","pxt-colors-yellow-foreground":"#000000","pxt-colors-yellow-hover":"#e4cc00","pxt-colors-yellow-alpha10":"#fde30019"},"overrideCss":"\n#langmodal #availablelocales .langoption .header {\n /* Better contrast than default, which is purple */\n color: var(--pxt-neutral-foreground1);\n}\n\n.pxtToolbox span.blocklyTreeLabel,\n.pxtToolbox .blocklyTreeSelected span.blocklyTreeLabel,\n.pxtToolbox .blocklyTreeSelected .blocklyTreeIcon {\n /* Better contrast in toolbox */\n color: var(--pxt-target-foreground3);\n}\n\n.pxtToolbox #advanced > .blocklyTreeRow {\n /* Better contrast for advanced section color */\n border-color: var(--pxt-neutral-alpha80);\n}\n.pxtToolbox #advanced > .blocklyTreeRow .blocklyTreeIcon {\n /* Better contrast for advanced section arrow icon */\n color: var(--pxt-neutral-alpha80);\n}\n\n.pxtToolbox #serial .blocklyTreeIcon,\n.tutorial-container .serial span.docs.inlineblock {\n /* Better contrast in toolbox & tutorial block colors, but try to preserve some of the icon color */\n filter: brightness(1.2) saturate(2);\n}\n\n.pxtToolbox #control .blocklyTreeIcon,\n.tutorial-container .control span.docs.inlineblock {\n /* Better contrast in toolbox & tutorial block colors, but try to preserve some of the icon color */\n filter: brightness(1.2) saturate(2);\n}\n\n#mainmenu {\n /* Some parts of the app use the same color as a background. This keeps the menu from blending in */\n border-bottom: 1px solid var(--pxt-header-stencil);\n}\n\n.projectsdialog .ui.card:hover {\n /* Neutral and target colors are the same in dark theme, so it helps to have a clearer border when hovering over cards. */\n border-color: var(--pxt-focus-border) !important;\n}\n\n#simulator #editorSidebar.editor-sidebar {\n /* Need a lighter background for sidebar to make the simulator stand out, since it's black on black otherwise */\n background-color: var(--pxt-target-background1);\n}\n\n.fullscreensim #boardview {\n /* Gradient background is a little too intense in dark mode. Use a solid color instead */\n background: var(--pxt-target-background2);\n}\n\n/* \n * Inverted image colors\n */\n.barcharticon,\n.blockly-ws-search-next-btn,\n.blockly-ws-search-previous-btn,\n.blockly-ws-search-close-btn {\n filter: invert(1);\n}\n\n.modals .ui.button.immersive-reader-button,\n#mainmenu .immersive-reader-button.ui.item,\n#simulator .editor-sidebar .immersive-reader-button.ui.item {\n background-image: url(\"/static/icons/immersive-reader-light.svg\") !important;\n}\n\n.carouselarrow {\n /* Better contrast, especially against images in carousels */\n opacity: 0.9;\n}\n\n/* For inverted buttons, it almost always looks better to have the background be dark instead of light (even though non-inverted has a light foreground) */\nbutton.ui.button.inverted:not(.teaching-bubble-button),\nbutton.common-button.inverted:not(.teaching-bubble-button) {\n background-color: var(--pxt-neutral-background2) !important;\n}\n\nbutton.ui.button.inverted:hover:not(.teaching-bubble-button),\nbutton.common-button.inverted:hover:not(.teaching-bubble-button) {\n background-color: var(--pxt-neutral-background2-hover) !important;\n}\n"},"microbit-light":{"id":"microbit-light","name":"Micro:bit Light","weight":20,"colors":{"pxt-header-background":"#3454D1","pxt-header-foreground":"#FFFFFF","pxt-header-background-hover":"#1d3282","pxt-header-foreground-hover":"#FFFFFF","pxt-header-stencil":"#2742ab","pxt-primary-background":"#6633cc","pxt-primary-foreground":"#FFFFFF","pxt-primary-background-hover":"#5C2EB8","pxt-primary-foreground-hover":"#FFFFFF","pxt-primary-accent":"#5229A3","pxt-secondary-background":"#3454D1","pxt-secondary-foreground":"#FFFFFF","pxt-secondary-background-hover":"#2742ab","pxt-secondary-foreground-hover":"#FFFFFF","pxt-secondary-accent":"#516DD8","pxt-tertiary-background":"#3454D1","pxt-tertiary-foreground":"#FFFFFF","pxt-tertiary-background-hover":"#2742ab","pxt-tertiary-foreground-hover":"#FFFFFF","pxt-tertiary-accent":"#1d3282","pxt-target-background1":"#ECF0F1","pxt-target-foreground1":"#000000","pxt-target-background1-hover":"#cfd9db","pxt-target-foreground1-hover":"#000000","pxt-target-stencil1":"#e1e1e1","pxt-target-background2":"#FDFDFF","pxt-target-foreground2":"#000000","pxt-target-background2-hover":"#cacaff","pxt-target-foreground2-hover":"#000000","pxt-target-stencil2":"#e1e1e1","pxt-target-background3":"#FFFFFF","pxt-target-foreground3":"#000000","pxt-target-background3-hover":"#e6e6e6","pxt-target-foreground3-hover":"#000000","pxt-target-stencil3":"#e1e1e1","pxt-neutral-background1":"#FFFFFF","pxt-neutral-foreground1":"rgba(0,0,0,.85)","pxt-neutral-background1-hover":"#e6e6e6","pxt-neutral-foreground1-hover":"rgba(0,0,0,.85)","pxt-neutral-stencil1":"rgba(34, 74, 114, 0.15)","pxt-neutral-background2":"#F8F8F8","pxt-neutral-foreground2":"rgba(0,0,0,.85)","pxt-neutral-background2-hover":"#DFDFDF","pxt-neutral-foreground2-hover":"rgba(0,0,0,.85)","pxt-neutral-stencil2":"#e9eef2","pxt-neutral-background3":"#617374","pxt-neutral-foreground3":"#FFFFFF","pxt-neutral-background3-hover":"#363c3d","pxt-neutral-foreground3-hover":"#FFFFFF","pxt-neutral-stencil3":"#FFFFFF","pxt-neutral-background3-alpha90":"#617374E5","pxt-neutral-base":"rgba(0, 0, 0, 1)","pxt-neutral-alpha0":"rgba(0, 0, 0, 0)","pxt-neutral-alpha10":"rgba(0, 0, 0, 0.1)","pxt-neutral-alpha20":"rgba(0, 0, 0, 0.2)","pxt-neutral-alpha50":"rgba(0, 0, 0, 0.5)","pxt-neutral-alpha80":"rgba(0, 0, 0, 0.8)","pxt-link":"#3977B4","pxt-link-hover":"#204467","pxt-focus-border":"#0078D4","pxt-success":"#2ECC71","pxt-pxt-success-foreground":"#000000","pxt-pxt-success-hover":"#22BE64","pxt-pxt-success-alpha10":"#2ECC7119","pxt-warning":"#FFD43A","pxt-warning-foreground":"#000000","pxt-warning-hover":"#FFCE21","pxt-warning-alpha10":"#FFD43A19","pxt-error":"#FF3A54","pxt-error-foreground":"#000000","pxt-error-hover":"#FF213E","pxt-error-alpha10":"#FF3A5419","pxt-colors-purple-background":"#9932cc","pxt-colors-purple-foreground":"#FFFFFF","pxt-colors-purple-hover":"#7a28a3","pxt-colors-purple-alpha10":"#9932cc19","pxt-colors-orange-background":"#ff7f50","pxt-colors-orange-foreground":"#FFFFFF","pxt-colors-orange-hover":"#ff5a1d","pxt-colors-orange-alpha10":"#ff7f5019","pxt-colors-brown-background":"#663905","pxt-colors-brown-foreground":"#FFFFFF","pxt-colors-brown-hover":"#351e03","pxt-colors-brown-alpha10":"#66390519","pxt-colors-blue-background":"#3454D1","pxt-colors-blue-foreground":"#FFFFFF","pxt-colors-blue-hover":"#2742ab","pxt-colors-blue-alpha10":"#3454D119","pxt-colors-green-background":"#107c10","pxt-colors-green-foreground":"#FFFFFF","pxt-colors-green-hover":"#096a09","pxt-colors-green-alpha10":"#107c1019","pxt-colors-red-background":"#E41B21","pxt-colors-red-foreground":"#FFFFFF","pxt-colors-red-hover":"#d60f15","pxt-colors-red-alpha10":"#e41b2119","pxt-colors-teal-background":"#2C7485","pxt-colors-teal-foreground":"#FFFFFF","pxt-colors-teal-hover":"#1f535f","pxt-colors-teal-alpha10":"#2C748519","pxt-colors-yellow-background":"#FDE74C","pxt-colors-yellow-foreground":"#000000","pxt-colors-yellow-hover":"#fce01a","pxt-colors-yellow-alpha10":"#FDE74C19"},"overrideCss":"/* Lots of specificity to override another !important rule */\n#simulator #editorSidebar .simtoolbar .ui.icon.tiny.buttons .ui.button.play-button.play .icon.play {\n color: var(--pxt-colors-green-background) !important;\n}\n\n.theme-preview-microbit-light .theme-preview-sim-button {\n background-color: var(--pxt-neutral-background2) !important;\n}\n\n#filelist, #editortools {\n /* Special textured backgrounds, but we only have assets for light theme */\n background: #fff url(\"/static/logo_texture.png\") 0 0 repeat !important;\n}\n\n/*\n * Adjustments to match the original micro:bit theme\n */\npath.blocklyFlyoutBackground {\n fill: #4b4949 !important;\n}\n\n.monacoFlyout {\n background: #4b4949 !important;\n}\n\n#simulator .editor-sidebar .filemenu {\n background: var(--pxt-secondary-background);\n color: var(--pxt-secondary-foreground);\n}\n\n#simulator .editor-sidebar .filemenu .item:hover, #simulator .editor-sidebar .filemenu .link.item:hover {\n background: var(--pxt-secondary-background-hover) !important;\n color: var(--pxt-secondary-foreground-hover) !important;\n}\n\n#simulator .ui.button.play-button .icon.play {\n color: var(--pxt-colors-green-background) !important;\n}\n\n.simtoolbar .ui.button.icon {\n background-color: #e0e1e2;\n color: rgba(0,0,0,.6);\n}\n\n.simtoolbar .ui.button.icon:hover {\n filter: none;\n background-color: rgb(224, 225, 226);\n}\n\n#serialPreview .label {\n border-color: var(--pxt-primary-background);\n}\n\n.ui.dimmer {\n /* Matches color specified in dimmer.variables, but with partial transparency */\n background-color: rgba(52, 84, 209, 0.4) !important;\n}"}}}