MinervaNeue/includes/MinervaUI.php

72 lines
2.6 KiB
PHP

<?php
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
/**
* FIXME: Use OOUI when available
*
* Helper methods for generating parts of the UI.
*/
class MinervaUI {
/**
* Get CSS classes for icons
* @param string $iconName
* @param string $iconType element or before
* @param string $additionalClassNames additional class names you want to associate
* with the iconed element
* @param string $glyphPrefix optional prefix for icons. Defaults to minerva.
* @return string class name for use with HTML element
*/
public static function iconClass( $iconName, $iconType = 'element', $additionalClassNames = '',
$glyphPrefix = 'minerva'
) {
$base = 'mw-ui-icon';
$modifiers = 'mw-ui-icon-' . $iconType;
if ( $iconName ) {
$modifiers .= ' mw-ui-icon-' . $glyphPrefix . '-' . $iconName;
}
return $base . ' ' . $modifiers . ' ' . $additionalClassNames;
}
/**
* Get CSS classes for a mediawiki ui semantic element
* @param string $base The base class
* @param string $modifier Type of anchor (progressive, constructive, destructive)
* @param string $additionalClassNames additional class names you want to associate
* with the iconed element
* @return string class name for use with HTML element
*/
public static function semanticClass( $base, $modifier, $additionalClassNames = '' ) {
$modifier = empty( $modifier ) ? '' : 'mw-ui-' . $modifier;
return $base . ' ' . $modifier . ' ' . $additionalClassNames;
}
/**
* Get CSS classes for buttons
* @param string $modifier Type of button (progressive, constructive, destructive)
* @param string $additionalClassNames additional class names you want to associate
* with the button element
* @return string class name for use with HTML element
*/
public static function buttonClass( $modifier = '', $additionalClassNames = '' ) {
return self::semanticClass( 'mw-ui-button', $modifier, $additionalClassNames );
}
}