Rev 11 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
/** Course page styles.*/// Variables.$activity-item-padding: 0.75rem !default;$activity-border-radius: 1rem !default;$activity-border-width: 2px !default;$activity-hover-border-color: $primary !default;$divider-color: $gray-300 !default;$divider-width: 2px !default;$divider-hover-color: $primary !default;/* Course content */.course-content ul.section-list {padding: 0;margin: 0;}// Re-style ordered list in course content..course-content .section-item,.course-content .section-item .activity-item {ul {list-style: disc;ul {list-style: circle;ul {list-style: square;}}}}// Expand all/Collapse all..section-collapsemenu {.collapseall {display: block;}.expandall {display: none;}&.collapsed {.collapseall {display: none;}.expandall {display: block;}}}// Course 'add section' button..btn.add-section {@include border-radius($activity-border-radius);border: $divider-width dashed $border-color;color: $primary;font-size: $font-size-sm;font-weight: bold;&:hover,&:focus {background-color: $primary-light-background;border: $divider-width solid $primary;color: $primary;}}// Max sections reached alert..max-section-alert {border-top: $divider-width dashed $border-color;font-size: $font-size-sm;font-weight: normal;color: $gray-600;}/* Sections */.course-section {list-style: none;margin-top: map-get($spacers, 3);// Custom styles for course sections while editing..editing & {margin-top: map-get($spacers, 2);}.section-item {padding: map-get($spacers, 3);border: $border-width solid $border-color;@include border-radius($activity-border-radius);}&.hidden,&.orphaned {.section-item {background-color: $gray-100;}}// Highlighted section.&.current {> .section-item {position: relative;&::before {border-left: $primary 3px solid;bottom: 0;content: "";left: -8px;position: absolute;top: 0;}}}.sectionname > a {color: $gray-900;&:hover {text-decoration: none;}}.sectionbadges .badge {margin-left: map-get($spacers, 2);font-weight: normal;.icon {font-size: 12px;width: 12px;height: 12px;}}.course-section-header.draggable {cursor: move;}.section_action_menu {.dropdown-toggle::after {display: none;}}.summarytext {// Add rounded borders to images.img {@include border-radius($activity-border-radius);}}// Availability styles for both section and activities..availabilityinfo {margin-top: map-get($spacers, 2);padding: map-get($spacers, 1) map-get($spacers, 3);background-color: $gray-200;@include font-size($small-font-size);@include border-radius($activity-border-radius);.editavailability {a {@include border-radius();font-weight: bold;&:hover {background-color: $gray-400;}.icon {font-size: inherit;margin-right: map-get($spacers, 1);}}}}// Override '.btn-icon' styles from buttons.scss to make section action menu icons bigger..section_action_menu > .action-menu {.btn-icon {font-size: $font-size-lg;}}.section-summary-activities {.icon {width: inherit;color: $primary;}}.section-summary-activities + .section {border-top: $border-width solid $border-color;margin-top: map-get($spacers, 3) !important; // stylelint-disable-line declaration-no-importantpadding-top: map-get($spacers, 3) !important; // stylelint-disable-line declaration-no-important}.section_goto .icon {font-size: $font-size-lg;color: $primary;}// Add new z-index context for dnd overlay higher divider buttons and quick edit links..overlay-preview {z-index: 5;}}// Old movehere link styles..section li.movehere a {display: block;width: 100%;height: 2rem;border: 2px dashed $gray-800;}/* Activities */.activity {list-style: none;padding-top: map-get($spacers, 1);margin-top: map-get($spacers, 1);border-top: $border-width solid $border-color;&.indented {.activity-item {margin-left: map-get($spacers, 3);}}// Custom styles for activity while editing and for the first activity card in the section..editing &,.section &:first-child {// Remove activity top border and spacing, while editing a separator is displayed.padding-top: 0;margin-top: 0;border-top: none;}}.activity-item {padding: $activity-item-padding;@include border-radius($activity-border-radius);&.activityinline {padding: $activity-item-padding 0;}&.hiddenactivity {background-color: $gray-100;.activityiconcontainer,.badge {mix-blend-mode: multiply;}}// Custom styles for activity cards while editing..editing & {cursor: move;.a {cursor: pointer;}// Add a border on hover to the activity card (avoiding hover effect in inner activities).&:hover:not(:has(.activity:hover)),&.selected {// We use outline here to avoid changing the layout everytime we hover.outline: $activity-border-width solid $activity-hover-border-color;box-shadow: $box-shadow-sm;.activityiconcontainer,.badge {mix-blend-mode: multiply;}}}.activity.dragging & {border: $activity-border-width solid $activity-hover-border-color;.editing &:hover {// We cancel the outline when dragging because it is not taken into account// in the element/image representing the drag and drop and it cuts out part of the// border.outline: none;}}// Activity card grid layout..activity-grid {display: grid;align-items: center;grid-template-columns: min-content 1fr min-content min-content min-content;grid-template-rows: 1fr repeat(5, min-content);grid-template-areas:"icon name groupmode completion actions""icon visibility groupmode completion actions""icon dates groupmode completion actions""icon altcontent altcontent altcontent altcontent""icon afterlink afterlink afterlink afterlink""icon availability availability availability availability";@include media-breakpoint-down(sm) {grid-template-columns: min-content 1fr min-content min-content min-content;grid-template-rows: 1fr repeat(4, min-content);grid-template-areas:"icon name actions""icon visibility actions""dates dates dates""groupmode groupmode groupmode""completion completion completion""altcontent altcontent altcontent""afterlink afterlink afterlink""availability availability availability";}}// Activity card specific grid layout for activities without name..activity-grid.noname-grid {grid-template-columns: min-content 1fr min-content min-content;grid-template-areas:"visibility groupmode completion actions""altcontent altcontent altcontent altcontent""afterlink afterlink afterlink afterlink""availability availability availability availability";@include media-breakpoint-down(sm) {grid-template-columns: 1fr min-content;grid-template-areas:"visibility actions""altcontent altcontent""groupmode groupmode""afterlink afterlink""completion completion""availability availability";}}.activity-actions {grid-area: actions;.actions {position: relative;}}.activity-icon {grid-area: icon;}.activity-dates {grid-area: dates;@include font-size($small-font-size);color: $gray-700;display: flex;flex-wrap: wrap;column-gap: 0.75rem;@include media-breakpoint-down(sm) {margin-top: map-get($spacers, 2);}}.activity-name-area {grid-area: name;// Prevent bootstrap strech-link from covering the inplace editable button using z-index..activityname {.afterlink {margin-left: map-get($spacers, 2);}.inplaceeditable .quickeditlink {position: relative;z-index: 2;margin-left: map-get($spacers, 2);}}.activitybadge {&.badge-none {font-weight: normal;--#{$prefix}badge-color: #{$body-color};@include font-size($small-font-size);padding: 0;}}}.activity-completion {grid-area: completion;justify-self: end;button,a[role="button"] {min-height: map-get($iconsizes, 5);}@include media-breakpoint-down(sm) {width: 100%;margin-top: map-get($spacers, 2);button {width: 100%;}}.completion-dialog {color: $gray-700;font-size: $font-size-sm;min-width: 12rem;.icon {font-size: $font-size-sm;width: $font-size-sm;height: $font-size-sm;margin-right: map-get($spacers, 1);}.editcompletion a {@include border-radius();color: $gray-700;font-weight: bold;text-decoration: none;&:hover {background-color: $gray-200;}}}}.activity-groupmode-info {grid-area: groupmode;justify-self: end;.groupmode-information {height: map-get($iconsizes, 5);width: map-get($iconsizes, 5);@include border-radius();.icon {width: map-get($iconsizes, 3);height: map-get($iconsizes, 3);}}.groupmode-icon-info {display: none;}@include media-breakpoint-down(sm) {width: 100%;margin-top: map-get($spacers, 2);padding-top: map-get($spacers, 2);border-top: $border-width solid $border-color;.groupmode-information {width: auto;font-size: inherit;padding: 0 map-get($spacers, 2);}.groupmode-icon-info {display: inline;}// Disable v-parent-focus behaviour on small devices to always show the groupmode button..v-parent-focus {opacity: 1;visibility: visible;}}}.activity-badges {grid-area: visibility;.badge {font-weight: normal;.icon {font-size: 12px;width: 12px;height: 12px;}}}.activity-altcontent {grid-area: altcontent;margin-top: map-get($spacers, 1);&.activity-description {margin-top: map-get($spacers, 2);padding-top: map-get($spacers, 2);border-top: $border-width solid $border-color;@include font-size($small-font-size);// Fix activity description bottom margin for first level-lists.ul:not(.activity-description ul ul) {margin-bottom: 1rem;}}// Add rounded borders to images.img {@include border-radius($activity-border-radius);}}.activity-availability {grid-area: availability;}.activity-afterlink {grid-area: afterlink;margin-top: map-get($spacers, 2);padding-top: map-get($spacers, 2);border-top: $border-width solid $border-color;}.no-overflow {width: 100%;}}.section .draggable .activity-item .dragicon {display: none;}/* Dividers */.course-content .divider {position: relative;hr {width: 100%;margin: map-get($spacers, 2) map-get($spacers, 1);border-top: $divider-width dashed $divider-color;opacity: 1;.changenumsections.disabled & {border-top: $divider-width dashed $divider-color;}}.divider-content {opacity: 0;visibility: hidden;transition: visibility 0.1s;position: absolute;background: linear-gradient(transparent 40%, $white 40%, $white 60%, transparent 60%);.section.hidden & {background: linear-gradient(transparent 40%, $gray-100 40%, $gray-100 60%, transparent 60%);}}&.always-visible {.divider-content {opacity: 1;visibility: visible;}}&.always-hidden {hr {opacity: 0;visibility: hidden;}}&:hover,&:focus,&:focus-within {.divider-content {opacity: 1;visibility: visible;}hr {opacity: 1;visibility: visible;}}// Style the hr divider when the "Add content" button is hovered.&:has(.btn.add-content:hover) {hr {border-color: $divider-hover-color;.changenumsections.disabled & {border-color: $gray-200;}}}}// These styles will make the activity and section dividers buttons visible (but still without opacity) so// buttons can be keyboard focusable..activity:focus-within + .activity .divider .divider-content,.course-section-header:focus-within + .content .section .activity:first-child .divider .divider-content,.content .section .activity:focus-within .divider .divider-content,.course-content:focus-within .changenumsections .divider .divider-content {visibility: visible;}// Hide last section "Add section". It will rely on the course format general "Add section" button..course-content ul.topics > li:last-child .changenumsections {display: none;}// Custom buttons for dividers..course-content .divider .btn.add-content {position: relative;z-index: 1;@include border-radius();font-size: $font-size-sm;font-weight: bold;color: shift-color($primary, $alert-color-scale);background-color: shift-color($primary, $alert-bg-scale);&:hover,&:focus {color: color-contrast($primary);background-color: $primary;}.icon {width: 14px;height: 14px;font-size: 14px;}.changenumsections.disabled & {color: $gray-500;background-color: $gray-200;outline: none;box-shadow: none;&:hover,&:focus {color: $gray-500;background-color: $gray-200;outline: none;box-shadow: none;}pointer-events: auto; // Restore pointer events for the disabled button so we can see the tooltip.}}/* Bulk editing */.bulkenabled {.bulk-hidden {display: none !important; // stylelint-disable-line declaration-no-important}.section {margin-left: map-get($spacers, 3);&:not(:first-child) {margin-top: map-get($spacers, 4);}}.activity {margin-top: map-get($spacers, 2);margin-left: 2rem;padding-top: map-get($spacers, 2);border-top: $divider-width dashed $divider-color;&:first-child {margin-top: map-get($spacers, 4);}}.activity-item {.bulkselect {float: left;margin-left: -2rem;}// Delegated sections are not available for bulk editing.&:has(.delegated-section):hover {outline: none !important; // stylelint-disable-line declaration-no-importantbox-shadow: none !important; // stylelint-disable-line declaration-no-important}}.course-section-header .bulkselect {left: -2.75rem;position: relative;width: 0;}@include media-breakpoint-down(md) {.course-content {margin-left: 2rem;}}.sticky-footer-content.bulkactions {.btn {--bs-btn-disabled-border-color: transparent;&:focus {outline: 0;box-shadow: $input-btn-focus-box-shadow;}}}}// Custom styles for bulk actions sticky footer in small devices..sticky-footer-content.bulkactions {@include media-breakpoint-down(md) {position: relative;.form-check,.bulkaction-name,.bulkcount {display: none;}.actions button {padding: 0 map-get($spacers, 2);}.bulkcancel {position: absolute;top: 0;right: 0;}}}/* Single section page */.single-section {// Revert main section's styles.> ul > .course-section {&.hidden .section-item {background-color: inherit;}.section-item {padding: 0;border: none;}}}.single-section-page .header-action {display: inline-block;}/* Default activity completion page */.defaultactivitycompletion-item {a {color: $black;text-decoration: none;}.activityicon {width: 32px;height: 32px;}}/* Home page course */.sitetopic {.section-item {margin-bottom: map-get($spacers, 4);@include border-radius();}}/* Move activity and Move section modals */.move-activity-tree {.collapse-list-item {@include border-radius();&:hover,&:focus {background-color: shift-color($primary, $alert-bg-scale);a {color: shift-color($primary, $alert-color-scale);}}a {color: $list-group-action-active-color;&:hover,&:focus {text-decoration: none;}}a.disabled {color: $list-group-disabled-color;}}.collapse-list-item-content .collapse-list-item {padding: $collapse-list-item-padding-y $collapse-list-item-padding-x;}ul {margin-left: map-get($spacers, 4);}.collapse-list-link {font-weight: bold;}}/* Subsections */.activity.subsection {border-top: none;> .activity-item {border: $border-width solid $border-color;padding: 0;margin: map-get($spacers, 2) 0;> .activity-grid > .activity-altcontent {margin-top: 0;}}.section {margin-top: 0;.section-item {border: none;padding: $activity-item-padding;}.icons-collapse-expand:has(+ h4) {height: map-get($iconsizes, 4);width: map-get($iconsizes, 4);font-size: $font-size-sm;}h4 {font-size: $h5-font-size;}.section_action_menu > .action-menu .btn-icon {font-size: inherit;}}+ .activity {border-top: none;}// Allow v-parent-focus only for closest acvitity (avoiding subsection)..focus-control:not(:has(.focus-control)) {&:focus-within .v-parent-focus,&:hover .v-parent-focus {opacity: 1 !important; // stylelint-disable-line declaration-no-importantvisibility: visible !important; // stylelint-disable-line declaration-no-important}}.focus-control:focus-within .focus-control .v-parent-focus,.focus-control:hover .focus-control .v-parent-focus {opacity: 0;visibility: hidden;}}/* Spinners */// Edit in progress spinner animation.@keyframes editinprogress-rotation {0% {opacity: 0;transform: rotate(0deg);}50% {opacity: 1;}100% {opacity: 0;transform: rotate(359deg);}}.editing {// New editing in progress spinners..editinprogress {position: relative;& > * {opacity: .4;}.corelightbox,.lightbox {display: none;}&:after {font: var(--fa-font-solid);position: absolute;font-size: 20px;color: $gray-600;content: fa-content($fa-var-spinner);display: flex;justify-content: center;align-items: center;width: 30px;height: 30px;left: calc(50% - 15px);top: calc(50% - 15px);animation: editinprogress-rotation 2s infinite linear;}// Prevent inner editingprogress..editinprogress {&:after {display: none;}}}}/* Drag and drop */// Compensate for the border widths when dropzones are displayed..course-content .section.dropready {&.main.drop-down {border-bottom: 1px solid $dropzone-border;}.course-section-header.dropready.drop-zone {margin-top: -2px;}li.activity.dropready.drop-down {border-bottom: 1px solid $dropzone-border;margin-bottom: -1px;}li.activity.dropready.drop-up {border-top: 1px solid $dropzone-border;margin-top: -1px;}[data-for="sectioninfo"] {// When a section is empty, the activity dropzone indicator is below// the section info. This ensures the dropzone will not displace the content// even if the section has no restrictions or info to display.min-height: 1px;}[data-for="sectioninfo"].drop-down {margin-top: -1px;}}/* Old indentation styles */.mod-indent-outer {display: table;}.mod-indent {display: table-cell;}.label .mod-indent {float: left;padding-top: 20px;}.activity.label.modtype_label .mod-indent {float: none;}@include media-breakpoint-up(sm) {$mod-indent-size: 30px;/* Creates a series of .mod-indent-# rule declarations based on indent size and number of indent levels. */@for $i from 1 through 16 {$width: ($i * $mod-indent-size);.mod-indent-#{$i} {width: $width;}}.mod-indent-huge {width: (16 * $mod-indent-size);}}