Commit c064eb5d authored by Benjamin Kott's avatar Benjamin Kott Committed by Wouter Wolters
Browse files

[!!!][CLEANUP] Move t3-table and t3-button to bootstrap

- Drop crontrib normalize css in favor of bootstrap normalize
- Drop .t3-table use bootstrap classes instead
- Drop .t3-button use bootstrap classes instead
- Use comments with // that are protected from compiling
- Lighten default button color
- Move Extension Manager SCSS files to t3skin LESS
- Remove copyrights from every included less file
- Remove TYPO3/visual/_module_web_list.less not used anymore
- Remove TYPO3/visual/_module_web_info.less not used anymore
- Add Legacy Support javascript for t3-table

This patch aims to reduce CSS size and remove duplicated
css definitions as much as possible. It may break some stuff
that needs to be cleaned up in a followup.

We need to drop .t3-table and .t3-button to reduce weight of the
css file and make overrides more easy.

Resolves: #64102
Releases: master
Change-Id: Id6195b5aa10984da22af83fdb175af1e286d67d8
Reviewed-on: http://review.typo3.org/35763

Reviewed-by: Mathias Schreiber's avatarMathias Schreiber <mathias.schreiber@wmdb.de>
Tested-by: Mathias Schreiber's avatarMathias Schreiber <mathias.schreiber@wmdb.de>
Reviewed-by: Wouter Wolters's avatarWouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters's avatarWouter Wolters <typo3@wouterwolters.nl>
parent b36e4d3a
/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined in IE 8/9.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9.
* Hide the `template` element in IE, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background: transparent;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari 5, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9.
*/
img {
border: 0;
}
/**
* Correct overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari 5.
*/
figure {
margin: 1em 40px;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8+, and Opera
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* Remove default vertical scrollbar in IE 8/9.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
......@@ -130,8 +130,6 @@ class BackendController {
if (!$this->debug) {
$this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/LoginRefresh');
}
// Add default BE css
$this->pageRenderer->addCssLibrary('contrib/normalize/normalize.css', 'stylesheet', 'all', '', TRUE, TRUE);
// load FlashMessages functionality
$this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/FlashMessages');
......@@ -139,12 +137,15 @@ class BackendController {
// load Modals
$this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Modal');
// load Legacy CSS Support
$this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/LegacyCssClasses');
// load the storage API and fill the UC into the PersistentStorage, so no additional AJAX call is needed
$this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Storage', 'function(Storage) {
Storage.Persistent.load(' . json_encode($GLOBALS['BE_USER']->uc) . ');
}');
$this->css = '';
$this->initializeToolbarItems();
if (isset($GLOBALS['TBE_STYLES']['dims']['leftMenuFrameW'])) {
$this->menuWidth = (int)$GLOBALS['TBE_STYLES']['dims']['leftMenuFrameW'];
......@@ -804,4 +805,4 @@ class BackendController {
return $view;
}
}
\ No newline at end of file
}
......@@ -288,7 +288,7 @@ class ElementInformationController {
// Download
if ($url) {
$downloadLink .= '<a href="' . htmlspecialchars($url) . '" target="_blank" class="t3-button">' .
$downloadLink .= '<a class="btn btn-primary" href="' . htmlspecialchars($url) . '" target="_blank">' .
IconUtility::getSpriteIcon('actions-edit-download') . ' ' .
$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xlf:download', TRUE) .
'</a>';
......@@ -370,7 +370,7 @@ class ElementInformationController {
</tr>';
}
return '<table class="t3-table">' . implode('', $tableRows) . '</table>';
return '<table class="table table-striped table-hover">' . implode('', $tableRows) . '</table>';
}
/**
......@@ -441,7 +441,7 @@ class ElementInformationController {
return '';
}
return '<table id="typo3-showitem" class="t3-table-info">' .
return '<table id="typo3-showitem" class="table table-striped table-hover">' .
implode('', $tableRows) .
'</table>';
}
......@@ -558,7 +558,7 @@ class ElementInformationController {
}
$referenceLine = '';
if (count($infoData)) {
$referenceLine = '<table class="t3-table">' .
$referenceLine = '<table class="table table-striped table-hover">' .
'<thead>' . $infoDataHeader . '</thead>' .
'<tbody>' .
implode('', $infoData) .
......@@ -613,7 +613,7 @@ class ElementInformationController {
return;
}
return '<table class="t3-table">' .
return '<table class="table table-striped table-hover">' .
'<thead>' . $infoDataHeader . '</thead>' .
'<tbody>' .
implode('', $infoData) .
......
......@@ -175,7 +175,7 @@ class FileUploadController {
<div id="c-submit">
<input type="hidden" name="redirect" value="' . $this->returnUrl . '" /><br />
' . \TYPO3\CMS\Backend\Form\FormEngine::getHiddenTokenField('tceAction') . '
<input type="submit" value="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:file_upload.php.submit', TRUE) . '" />
<input class="btn btn-default" type="submit" value="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:file_upload.php.submit', TRUE) . '" />
</div>
';
return $content;
......
......@@ -213,9 +213,15 @@ class ColorpickerController extends AbstractWizardController {
<p class="c-head">' . $this->getLanguageService()->getLL('colorpicker_colorValue', TRUE) . '</p>
<table border="0" cellpadding="0" cellspacing="3">
<tr>
<td><input type="text" ' . $this->doc->formWidth(7) . ' maxlength="10" name="colorValue" value="' . htmlspecialchars($this->colorValue) . '" /></td>
<td style="background-color:' . htmlspecialchars($this->colorValue) . '; border: 1px solid black;">&nbsp;<span style="color: black;">' . $this->getLanguageService()->getLL('colorpicker_black', TRUE) . '</span>&nbsp;<span style="color: white;">' . $this->getLanguageService()->getLL('colorpicker_white', TRUE) . '</span>&nbsp;</td>
<td><input type="submit" name="save_close" value="' . $this->getLanguageService()->getLL('colorpicker_setClose', TRUE) . '" /></td>
<td>
<input type="text" ' . $this->doc->formWidth(7) . ' maxlength="10" name="colorValue" value="' . htmlspecialchars($this->colorValue) . '" />
</td>
<td style="background-color:' . htmlspecialchars($this->colorValue) . '; border: 1px solid black;">
<span style="color: black;">' . $this->getLanguageService()->getLL('colorpicker_black', TRUE) . '</span>&nbsp;<span style="color: white;">' . $this->getLanguageService()->getLL('colorpicker_white', TRUE) . '</span>
</td>
<td>
<input class="btn btn-default" type="submit" name="save_close" value="' . $this->getLanguageService()->getLL('colorpicker_setClose', TRUE) . '" />
</td>
</tr>
</table>
......
......@@ -858,7 +858,7 @@ class InlineElement {
} else {
$createNewRelationText = $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:cm.createNewRelation', TRUE);
}
$item .= ' <a href="#" class="t3-button" onclick="' . htmlspecialchars($onChange) . '" align="abstop">' . IconUtility::getSpriteIcon('actions-document-new', array('title' => $createNewRelationText)) . $createNewRelationText . '</a>';
$item .= ' <a href="#" class="btn btn-default" onclick="' . htmlspecialchars($onChange) . '" align="abstop">' . IconUtility::getSpriteIcon('actions-document-new', array('title' => $createNewRelationText)) . $createNewRelationText . '</a>';
$item = '<div class="t3-form-field-group">' . $item . '</div>';
}
return $item;
......@@ -902,7 +902,7 @@ class InlineElement {
$browserParams = '|||' . $allowed . '|' . $objectPrefix . '|inline.checkUniqueElement||inline.importElement';
$onClick = 'setFormValueOpenBrowser(\'' . $mode . '\', \'' . $browserParams . '\'); return false;';
$item = '<a href="#" class="t3-button" onclick="' . htmlspecialchars($onClick) . '">';
$item = '<a href="#" class="btn btn-default" onclick="' . htmlspecialchars($onClick) . '">';
$item .= IconUtility::getSpriteIcon('actions-insert-record', array('title' => $createNewRelationText));
$item .= $createNewRelationText . '</a>';
......@@ -913,7 +913,7 @@ class InlineElement {
&& $folder->checkActionPermission('add')
) {
$maxFileSize = GeneralUtility::getMaxUploadFileSize() * 1024;
$item .= ' <a href="#" class="t3-button t3-drag-uploader"
$item .= ' <a href="#" class="btn btn-default t3-drag-uploader"
style="display:none"
data-dropzone-target="#' . htmlspecialchars($this->inlineNames['object']) . '"
data-insert-dropzone-before="1"
......@@ -965,7 +965,7 @@ class InlineElement {
$title = $languageService->sL('LLL:EXT:lang/locallang_core.xlf:cm.createnew', TRUE);
$icon = 'actions-document-new';
$className = 'typo3-newRecordLink';
$attributes['class'] = 't3-button inlineNewButton ' . $this->inlineData['config'][$nameObject]['md5'];
$attributes['class'] = 'btn btn-default inlineNewButton ' . $this->inlineData['config'][$nameObject]['md5'];
$attributes['onclick'] = 'return inline.createNewRecord(\'' . $objectPrefix . '\')';
if (!empty($conf['inline']['inlineNewButtonStyle'])) {
$attributes['style'] = $conf['inline']['inlineNewButtonStyle'];
......@@ -983,14 +983,14 @@ class InlineElement {
$title = $languageService->sL('LLL:EXT:lang/locallang_misc.xlf:localizeAllRecords', 1);
$icon = 'actions-document-localize';
$className = 'typo3-localizationLink';
$attributes['class'] = 't3-button';
$attributes['class'] = 'btn btn-default';
$attributes['onclick'] = 'return inline.synchronizeLocalizeRecords(\'' . $objectPrefix . '\', \'localize\')';
break;
case 'synchronize':
$title = $languageService->sL('LLL:EXT:lang/locallang_misc.xlf:synchronizeWithOriginalLanguage', TRUE);
$icon = 'actions-document-synchronize';
$className = 'typo3-synchronizationLink';
$attributes['class'] = 't3-button inlineNewButton ' . $this->inlineData['config'][$nameObject]['md5'];
$attributes['class'] = 'btn btn-default inlineNewButton ' . $this->inlineData['config'][$nameObject]['md5'];
$attributes['onclick'] = 'return inline.synchronizeLocalizeRecords(\'' . $objectPrefix . '\', \'synchronize\')';
break;
default:
......
......@@ -449,7 +449,7 @@ class RecordHistory {
<!--
History (list):
-->
<table class="t3-table" id="typo3-history">
<table class="table table-striped table-hover" id="typo3-history">
' . implode('', $lines) . '
</table>';
if ($this->lastSyslogId) {
......
......@@ -379,12 +379,12 @@ class ModuleSettings {
// Load button
if (in_array('load', $showElements)) {
$code .= '
<input type="submit" name="storeControl[LOAD]" value="Load" /> ';
<input class="btn btn-default" type="submit" name="storeControl[LOAD]" value="Load" /> ';
}
// Remove button
if (in_array('remove', $showElements)) {
$code .= '
<input type="submit" name="storeControl[REMOVE]" value="Remove" /> ';
<input class="btn btn-default" type="submit" name="storeControl[REMOVE]" value="Remove" /> ';
}
$codeTD[] = '<td width="1%">Preset:</td>';
$codeTD[] = '<td nowrap="nowrap">' . $code . '&nbsp;&nbsp;</td>';