MediaWiki:Common.css: Difference between revisions

From World Encyclopedia of Conductors
No edit summary
No edit summary
Line 289: Line 289:
   table.concert-table th:first-child::after,  
   table.concert-table th:first-child::after,  
   table.concert-table td:first-child::after {
   table.concert-table td:first-child::after {
    display: none;
  }
 
  /* 5. Скрываем верхнюю шапку таблицы (строку с названиями колонок) на телефонах */
  table.concert-table > thead,
  table.concert-table > tbody > tr:first-child {
     display: none;
     display: none;
   }
   }
}
}

Revision as of 10:49, 26 June 2026

/* CSS placed here will be applied to all skins */
@font-face {
  font-family: Kazimir;
  src: 
  local("Kazimir"), 
  url(/resources/assets/Kazimir-Text-Regular.woff2) format("woff2");
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: Kazimir;
  src: 
  local("Kazimir"), 
  url(/resources/assets/Kazimir-Text-Italic.woff2) format("woff2");
  font-style: italic;
  font-weight: 400;
}

@font-face {
  font-family: Kazimir;
  src: 
  local("Kazimir"), 
  url(/resources/assets/Kazimir-Text-Bold.woff2) format("woff2");
  font-style: normal;
  font-weight: 700;
}

#siteSub {
    display: block;
}

#p-logo-text a {
	font-family: Kazimir, 'Segoe UI', serif;
	font-size: 1.2em;
	font-variant: small-caps;
}

#p-logo-text a.long {
	font-size: 1.2em;
	line-height: 1;
}

@media screen{
	body {
		font-family: Kazimir, 'Segoe UI', Sans-Serif;
	}
	#siteSub .mw-body .mw-heading, .mw-body h1, .mw-body h2, .mw-body h3, .mw-body h4, .mw-body h5, .mw-body h6, .mw-body dt {
		font-family: Kazimir, 'Linux Libertine','Times New Roman'; 
	}
}

/* Infoboxes */
.infobox {
	border: 1px solid #a2a9b1;
	color: black;
	padding: 0.2em;
	font-size: 88%;
	line-height: 1.5em;
	border-spacing: 3px;
	margin: 0.5em 0;
}

@media screen {
	.infobox {
		background-color: var(--background-color-neutral-subtle, #f8f9fa);
    }
}

@media (max-width: 640px) {
	.infobox {
		width: 100%;
	}
    
	.infobox .nowrap {
		white-space: normal;
	}
}

@media (min-width: 640px) {
	.infobox {
		/* @noflip */
		margin-left: 1em;
		/* @noflip */
		float: right;
		/* @noflip */
		clear: right;
		width: 22em;
	}
}

.infobox-header,
.infobox-label,
.infobox-above,
.infobox-full-data,
.infobox-data,
.infobox-below,
.infobox-subheader,
.infobox-image,
.infobox-navbar,
/* Remove element selector when every .infobox thing is using the standard module/templates  */
.infobox th,
.infobox td {
	vertical-align: top;
}

.infobox-label,
.infobox-data,
/* Remove element selector when every .infobox thing is using the standard module/templates  */
.infobox th,
.infobox td {
	/* @noflip */
	text-align: left;
}

/* Remove .infobox when element selectors above are removed */
.infobox .infobox-above,
.infobox .infobox-title,
/* Remove element selector when every .infobox thing is using the standard module/templates  */
.infobox caption {
	font-size: 125%;
	font-weight: bold;
	text-align: center;
}

.infobox-title,
/* Remove element selector when every .infobox thing is using the standard module/templates  */
.infobox caption {
	padding: 0.2em;
}

/* Remove .infobox when element selectors above are removed */
.infobox .infobox-header,
.infobox .infobox-subheader,
.infobox .infobox-image,
.infobox .infobox-full-data,
.infobox .infobox-below {
	text-align: center;
}

/* Remove .infobox when element selectors above are removed */
.infobox .infobox-navbar {
	/* @noflip */
	text-align: right;
}

.toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: chapter-counter; /* Инициализируем счетчик */
}

.entry {
  display: grid;
  /* Добавляем колонку для номера: [номер] [название] [стр] */
  grid-template-columns: max-content auto max-content; 
  grid-template-areas: "number chapter page";
  align-items: baseline; /* Выравнивание по базовой линии текста */
  gap: 0 .5rem;
  
  counter-increment: chapter-counter; /* Увеличиваем счетчик на каждом li */
  margin-bottom: 0.5rem; /* Отступ между главами */
  min-width: 50ch;
}

/* Создаем номер главы через псевдо-элемент */
.entry::before {
  grid-area: number;
  content: counter(chapter-counter) "."; /* Выводим число и точку */
}

.opus-title {
  grid-area: chapter;
  position: relative;
  overflow: hidden;
}

/* Ваши точки (без изменений, кроме overflow handling) */
.opus-title::after {
  position: absolute;
  padding-left: .25ch;
  content: " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .";
  text-align: right;
  white-space: nowrap; /* Важно, чтобы точки не переносились */
}

.composer {
  grid-area: page;
  align-self: last baseline;
}

.entry:only-child {
  grid-template-columns: auto max-content; /* Убрали первую колонку */
  grid-template-areas: "chapter page";     /* Убрали область number */
}

/* 2. Скрываем сам счетчик */
.entry:only-child::before {
  content: none;
  display: none;
}


th:first-child, td:first-child {
	position: sticky;
	left: 0;
	border-inline-end: none;
	background: whitesmoke;
}

td:first-of-type,
:where(thead, tfoot) th:nth-child(2) {
	border-inline-start: none;
}

th:first-child::after, td:first-child::after {
	content: '';
	position: absolute;
	inset-block-start: 0;
	inset-inline-end: 0;
	width: 1px;
	height: 100%;
	background: lightgrey;
}

/* --- АДАПТАЦИЯ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ --- */
@media screen and (max-width: 768px) {
  
  /* 1. Меняем сетку, чтобы вторая строка занимала всю ширину */
  .entry {
    min-width: 100%;
    grid-template-columns: max-content 1fr;
    grid-template-areas: 
      "number chapter"
      "page page"; /* Заменили точку на page, теперь фамилия занимает всю ширину от края до края */
    margin-bottom: 0.8rem;
  }
  
  /* Сохраняем логику для одиночных произведений (без номера) */
  .entry:only-child {
    grid-template-columns: auto;
    grid-template-areas: 
      "chapter"
      "page";
  }

  /* 2. Отключаем длинную линию точек на телефонах */
  .opus-title::after {
    content: none;
  }

  /* 3. Оформляем композитора и добавляем точечную линию ВНИЗУ */
  .composer {
    text-align: right;
    margin-top: 0.2rem;
    border-bottom: 2px dotted #ccc; /* Та самая легкая точечная линия */
   /* padding-bottom: 0.4rem; Воздух между фамилией и линией */
  }
  
  /* Чтобы у самого последнего произведения в списке не было лишней черты снизу
  .entry:last-child .composer {
    border-bottom: none;
  } */

  /* 4. Чиним "липкую" таблицу */
  /* Превращаем строки в блоки друг под другом */
  table.concert-table, 
  table.concert-table tbody, 
  table.concert-table tr, 
  table.concert-table td, 
  table.concert-table th {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  /* Сбрасываем залипание (sticky) с колонки дат */
  table.concert-table th:first-child, 
  table.concert-table td:first-child {
    position: relative; 
    left: auto;
    background: #e9ecef;
    text-align: left !important;
    padding: 10px !important;
  }

  /* Отключаем вашу вертикальную полоску-границу для даты, так как дата теперь сверху */
  table.concert-table th:first-child::after, 
  table.concert-table td:first-child::after {
    display: none;
  }
  
  /* 5. Скрываем верхнюю шапку таблицы (строку с названиями колонок) на телефонах */
  table.concert-table > thead,
  table.concert-table > tbody > tr:first-child {
    display: none;
  }
}