pxt-core
Version:
Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors
506 lines (445 loc) • 11.8 kB
text/less
@import "./docs/tocheader.less";
/*******************************
Docs
*******************************/
/* Background and foreground */
@docsBackgroundColor: white;
@docsTextColor: #333;
@docsLineHeight: 1.7;
/* Text color */
@docsHeadingColor: @docsTextColor;
/* Link color */
@docsLinkColor: #3977b4;
/* Code segment */
@docsSegmentBackgroundColor: #f7f7f7;
@docsSegmentBackgroundColorValid: #edf9ef;
@docsSegmentBackgroundColorInvalid: #fbf3f4;
/* Card */
@docsCardBackgroundColor: white;
@docsCardColor: @docsTextColor;
@docsCardHeaderColor: @docsTextColor;
@docsCardContentColor: @docsTextColor;
@docsCardImageBackgroundColor: rgba(0, 0, 0, .05);
@docsCardBorderColor: #e9eef2;
@docsCardHoverBorderColor: #1dacf4;
@docsCardFocusBorderColor: #0078D4; // --pxt-focus-border not available in iframed documentation
#docs .footer,
#docs .topbar,
#docs {
top: auto;
background: hsl(@docsHue, 25%, 85%);
&.inverted {
background: hsl(@docsHue, 15%, 20%);
}
}
.docs.ui.menu.sidebar {
border: none;
border-right: 1px solid rgba(34,36,38,.15);
}
#docs {
font-family: @docsPageFont ;
color: @docsTextColor;
* {
-webkit-overflow-scrolling: touch;
-webkit-tap-highlight-color: transparent;
-webkit-text-size-adjust: none;
-webkit-touch-callout: none;
-webkit-font-smoothing: antialiased;
}
#maincontent {
background-color: @docsBackgroundColor;
}
h1, h2, h3, h4, h5, h6 {
font-family: @docsHeaderFont ;
color: @docsHeadingColor;
}
h1 {
margin-bottom: .85em;
}
h2 {
margin-top: 1.5em;
margin-bottom: .75em;
&:not(:first-child) {
padding-top: 1.5em;
border-top: 2px solid fade(@docsHeadingColor, 15%);
}
&+h2 {
padding-top: 0 ;
margin-top: -.75em ;
border-top: none ;
}
}
/* Text color */
p, ul li {
color: @docsTextColor;
line-height: @docsLineHeight;
}
/* Link color */
a {
color: @docsLinkColor;
}
// links within paragraphs should be underlined for accessibility
p a {
text-decoration: underline;
}
span.block {
display: inline-block;
vertical-align: middle;
}
span.docs, text.blocklyText {
-webkit-font-smoothing: auto ;
}
/* Language Picker */
#langpicker > i {
color: @docsLinkColor;
text-decoration: none;
margin-right: 4px;
}
/* Code segments */
.mainbody .ui.segment, pre {
background: @docsSegmentBackgroundColor ;
border-radius: 0 ;
border: 0 ;
margin-bottom: 1.275em;
box-shadow: none;
tab-size: 4;
.subheading {
text-align: right;
border-top: 1px solid fade(@docsTextColor, 50%);
color: fade(@docsTextColor, 70%);
margin-top: 1em;
padding-top: .5em;
text-transform: uppercase;
}
}
.mainbody div.codewidget.valid, code.valid {
background: @docsSegmentBackgroundColorValid ;
}
.mainbody div.codewidget.invalid, code.invalid {
background: @docsSegmentBackgroundColorInvalid ;
}
.mainbody div.codewidget.valid, .mainbody div.codewidget.invalid {
overflow: auto;
}
.invalid i.icon, .valid i.icon {
float: right;
margin-top: 10px;
margin-right: 10px;
font-size: 30px;
}
.invalid i.icon {
color: #a31515;
}
.valid i.icon {
color: #008000;
}
.avatar .ui.message {
margin-left: 4em;
margin-bottom: 1em;
}
code.lang-typescript, code.lang-python {
overflow-wrap: break-word;
}
.codesnippet {
padding-top: 1em;
.ui.tabular.menu {
border: none;
margin-bottom: -1.5em;
padding-bottom: 0;
.item:hover, .item:focus {
border-radius: 2px;
outline: none;
background: @docsSegmentBackgroundColor;
}
}
}
/* Cards */
.ui.card {
padding: 0 ;
background: @docsCardBackgroundColor;
color: @docsCardColor;
border-radius: 0.5rem ;
border: 2px solid @docsCardBorderColor;
text-decoration: none; /* Remove underline applied by a link */
> .image {
background: @docsCardImageBackgroundColor;
}
.header {
color: @docsCardHeaderColor;
}
.content .ui.description {
color: @docsCardContentColor;
}
&:hover, &:focus {
border: 2px solid @docsCardHoverBorderColor;
}
}
.card-list {
display: flex;
flex-wrap: wrap;
row-gap: 1.5rem;
column-gap: 1rem;
div .ui.card {
height: 100%;
}
}
/* Breadcrumb */
.ui.breadcrumb .divider {
color: black;
}
/* Buttons */
.ui.primary.button p {
color: white;
}
#sidedocs-back-button {
margin-top: 1.25rem;
margin-left: 1.25rem;
margin-right: 5rem; // Safety margin for the "open in new tab" button
cursor: pointer;
user-select: none;
color: var(--pxt-page-foreground);
display: block;
&:hover {
text-decoration: none;
}
&:focus-visible {
outline: 3px solid @docsCardFocusBorderColor;
outline-offset: 3px;
}
}
#sidedocs-back-button.disabled {
color: #aeaeae;
cursor: not-allowed;
}
table {
border-collapse: collapse;
}
table tr th, table tr td {
border: 1px solid #333;
padding: 6px 13px;
}
table tr:nth-child(2n) {
background-color: #f8f8f8;
}
/* Warning Message Box */
.ui.warning.message > .content:before {
content: '\f05a';
}
/* Alert Message Box */
.ui.negative.message > .content:before {
content: '\f071';
}
/* Tip Message Box */
.ui.positive.message > .content:before {
content: '\f058';
}
/* Hint Message Box */
.ui.info.message > .content:before {
content: '\f15c';
}
/* message boxes */
.ui.message {
&.info, &.positive, &.negative, &.warning {
padding: 2em;
> .content:before {
font-family: Icons;
font-size: 1.3em;
vertical-align: top;
}
> .content > h4 {
display: inline;
margin-left: 1em;
font-weight: 500;
scroll-margin-top: 6em;
}
}
}
.footer {
margin-left: 0;
margin-right: 0;
margin-top: 3em;
margin-bottom: 0;
a.item {
color: rgb(22, 83, 130, 1.0);
i.icon {
width: auto;
padding: 0 .25em ;
color: rgba(0, 0, 0, .6);
}
&:hover, &:focus {
i.icon {
color: rgba(0, 0, 0, 0.8);
}
}
}
.divider {
border-top: 1px solid rgba(0, 0, 0, 0.3);
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.ui.divided.horizontal.list > .item:not(:first-child) {
border-left: 1px solid rgba(0, 0, 0, .4);
}
span.item {
color: rgba(0, 0, 0, .6);
}
span.item, img {
vertical-align: middle;
}
&> .ui.container {
margin: 0 auto;
padding: 2em 0;
}
.poweredBy .item {
padding-right: .5em;
}
&.inverted {
a.item {
color: rgba(114, 163, 211, 1.0);
i.icon {
color: rgba(255, 255, 255, .6);
}
&:hover, &:focus {
i.icon {
color: rgba(255, 255, 255, 0.8);
}
}
}
.divider {
border-top: 1px solid rgba(255, 255, 255, 0.3);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.ui.divided.horizontal.list > .item:not(:first-child) {
border-left: 1px solid rgba(255, 255, 255, .4);
}
span.item {
color: rgba(255, 255, 255, .6);
}
}
}
/** youtube / video embed: don't give negative margin**/
.ui.grid {
margin: 0;
}
/* sidedocs tutorials (text-based) */
&.editorlang-text {
pre {
overflow-x: scroll;
font-size: 0.875em;
}
pre > code {
white-space: pre;
}
.mainbody .ui.segment {
padding: 0;
}
}
span.docs.inlineblock {
border-bottom: 3px solid var(--inline-namespace-color);
border-radius: 0;
color: black;
font-weight: 600;
background-color: transparent;
padding-bottom: 0.1rem;
}
}
.ui.sidebar.menu.docs {
background: #EFEFEF;
padding-left: 0.5em;
/* Sidebar TOC */
.item:before {
content: none;
width: 0;
height: 0;
}
.item,
.accordion .title {
padding: 0.8rem;
padding-left: 1rem;
display: flex;
flex-direction: row;
}
.item {
padding-left: 1.25em;
}
.active.item {
color: hsla(0,0%,0%,.9) ;
}
.content {
border-left: 1px solid hsla(@docsHue, 45%, 40%, 0.3);
}
.accordion.item {
padding: 0;
display: flex;
flex-direction: column;
}
.accordion.item .title .icon {
font-size: 0.8em;
font-weight: 700;
width: 1rem;
transform: translateY(0.1rem);
}
.content {
padding-top: 0;
}
.accordion.item .title.active .icon {
transform: translateY(0.1rem) rotate(90deg);
}
.accordion.item .title {
display: flex;
padding-left: 0;
}
.accordion.item {
margin: 0;
}
a.item.active {
background-color: hsla(0,0%,0%,.05);
}
a.item,
.accordion .title {
&:hover, &:focus {
background-color: hsla(0,0%,0%,.1);
}
}
a {
color: hsla(0,0%,0%,.9);
}
.icon {
color: hsl(@docsHue, 45%, 40%);
}
a:hover,
a:focus,
.title:hover a,
.title:focus a {
text-decoration: none;
color: hsl(@docsHue, 35%, 30%)
}
&.vertical .item:before {
/* remove gray divider lines */
content: none;
}
/* indented content
Note: we're annoyingly specific with these selectors
because we need to override Semantic's default behavior
*/
.accordion.item .content:not(.style),
.accordion.item .accordion .title~.content:not(.ui),
.accordion.item .title~.content:not(.ui) {
padding: 0 0 0 0.25rem;
margin: 0 0 0 0.5rem;
}
}
.sideDocs #sidedocsbar a {
color: @docsLinkColor;
&:focus-visible {
outline: 3px solid var(--pxt-focus-border);
outline-offset: 3px;
}
}
.replaceDocsAvatar() when not (@docsAvatarImage = none) {
#docs {
.avatar .avatar-image {
background-image: @docsAvatarImage;
}
}
}
.replaceDocsAvatar();