html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
border: 0;
overflow: hidden;
}
.start-menu {
position: absolute !important; /* XXX overriding relative; could instead of using :after use border-image */
left: 2px;
bottom: 25px;
width: calc(186px + 21px); /* 186px isn't the proper width measured out, just what I had it before, (for the content, on chrome on windows 10; text wrapping is not cross-platform-consistent) */
padding-left: 21px; /* 21px = .start-menu-titlebar */
height: 340px;
max-height: calc(100vh - 26px); /* based on taskbar height TODO: do this differently, probably in JS, since the taskbar will be resizable (or could be) */
box-sizing: border-box;
display: flex;
flex-direction: row;
}
.start-menu-titlebar {
flex: 0 0 auto;
width: 21px;
}
.start-menu-content {
overflow: auto;
padding: 15px;
}
.start-menu ul {
list-style: none;
margin: 1em 0;
padding: 0;
}
.desktop {
height: 100%;
display: flex;
}
.folder-view {
position: relative;
flex: 1;
}
.taskbar {
position: absolute;
z-index: 2;
bottom: 0;
left: 0;
right: 0;
height: 27px; /* not including outline part of border */
display: flex;
flex: 1;
}
/* .taskbar-button is generally .task or .start-button for now */
.taskbar button,
.taskbar-divider,
.tray {
margin: 2px;
}
.taskbar-divider {
margin-right: 0px;
margin-left: 0px;
/* TODO: maybe make that 2px rule padding on the taskbar instead and avoid reseting this */
}
.taskbar button {
line-height: 14px;
padding: 2px;
overflow: hidden; /* TODO: If tons and tons of tasks don't show icons? (smaller than width of an icon?) */
display: flex;
flex-direction: row;
align-items: center;
/* (justify-content: flex-start;) */
}
.taskbar button .title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.taskbar .start-button {
flex-shrink: 0;
padding: 2px 4px;
}
.tray {
display: flex;
flex-direction: row;
/* align-items: center; */
/* align-content: center; */
/* justify-content: center; */
line-height: 22px;
box-sizing: border-box;
vertical-align: middle;
}
.tray-icons {
display: flex;
align-items: center;
margin-left: 2px; /* XXX basically 1px, but 2px because of the way the border is done */
}
.tray-icon {
margin-left: 1px;
}
.taskbar-time {
width: 60px;
text-align: center;
}
/* TODO: offset task button contents down a px when depressed... actually most buttons */
.tasks {
display: flex;
flex: 1;
height: 100%;
}
.task {
max-width: 200px;
width: 50%;
text-align: left;
}
.task img {
padding-right: 4px;
flex: 0 0 auto;
}
.desktop,
.folder-view,
.taskbar,
.start-button,
.tasks,
.task,
.window,
.window-titlebar,
.window-title {
cursor: default;
user-select: none;
-o-user-select: none;
-ms-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
}
.window-titlebar .icon {
vertical-align: bottom;
}
.window-content {
margin: 0;
padding: 0;
}
.desktop-icon {
display: inline-block;
vertical-align: bottom; /* with inline-block, always */
margin: 5px;
text-align: center;
}
.desktop-icon .icon-wrapper {
display: inline-block;
vertical-align: bottom; /* with inline-block, always */
position: relative;
}
.desktop-icon .title {
line-height: 13px;
font-size: 9px;
overflow: hidden;
text-overflow: ellipsis; /* TODO: make this work with multiline text! This is apparently a limitation of this CSS property and ther are various crazy CSS hacks and JS libs to solve this. */
word-wrap: break-word; /* All browsers since IE 5.5+ */
overflow-wrap: break-word; /* Renamed property in CSS3 draft spec */
}
.desktop-icon:not(.focused) .title {
/* max-height: 2em would only work with line-height: 1 */
max-height: calc(13px * 2);
}
.desktop-icon.focused {
z-index: 1;
}
/* Fix dragging things (like windows) over iframes */
.drag iframe {
pointer-events: none;
}
.marquee {
pointer-events: none;
}
.menus {
display: flex;
flex: 0 0 auto;
}
.menu-container {
position: relative;
}
.menu-popup {
position: absolute;
top: 100%;
left: 0;
z-index: 400000; /* so sub-menu-popups can be visible over the window */
box-sizing: border-box;
}
.menu-popup-table {
border-collapse: collapse;
}
.menu-item {
white-space: nowrap;
}
.menu-hr {
display: block !important;
height: 0;
width: auto;
}
.menu-hotkey {
display: inline !important;
}
.menu-item-checkbox-area,
.menu-item-submenu-area {
min-width: 16px;
}
.menu-item-checkbox-area,
.menu-item-submenu-area {
text-align: center;
}
.window-titlebar {
display: flex;
flex-direction: row;
align-items: center;
}
.window-title-area {
position: relative;
flex: 1;
height: 16px; /* 100% doesn't work */
}
.window-title {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
display: inline-block !important;
margin: 0;
padding: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.window-close-button {
display: block !important;
float: right;
width: 13px;
height: 11px;
}
.window-close-button:before {
content: '×';
position: relative;
}
.window-content .button-group {
width: 85px;
}
.window-content .button-group > button {
width: 95%;
padding: 3px 5px;
}
::before, ::after {
pointer-events: none;
}
.cursor-bully * {
cursor: inherit !important;
}
.loading-program * {
cursor: progress;
}