Vueをほとんど使わないようにする

このコミットが含まれているのは:
テクニカル諏訪子 2021-06-28 22:40:39 +09:00
コミット 8676e0fe1d
169個のファイルの変更80643行の追加2783行の削除

4
.gitignore vendored
ファイルの表示

@ -1,7 +1,7 @@
/node_modules
/public/hot
/public/js
/public/css
/public/css.old
/public/js.old
/public/storage
/public/assets/avatars
/public/assets/board

ファイルの表示

@ -1,533 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Contracts\Routing\ResponseFactory;
use App\User;
use Validator;
use DB, Hash, Mail, Illuminate\Support\Facades\Password;
use App\Http\Controllers\PermissionController;
use Illuminate\Support\Facades\Log;
class AuthController extends Controller {
private $objPermission;
public function __construct() {
$this->objPermission = new PermissionController();
}
public function checkSelf(Request $r) { // /api/auth/checkself
$check = checkLegit($r->kero_token);
return array($check);
}
public function getPerms(Request $r) { // /api/auth/getpermissions
$check = $this->getPermissions($r->kero_token);
return array($check);
}
public function getPermissions($token) {
$check = checkLegit($token);
$perm = DB::table('usr_perm_id')
->select('perm_id')
->where('user_id', $check)
->first();
$perm = json_decode(json_encode($perm), true);
// Does the user ID exist? Grand the appropriate rights. Otherwise, use guest.
if ($check != 0) {
// Page permissions.
$grouppermblg = $this->objPermission->getPermissionGroup('blg', $perm['perm_id']);
$userpermblg = $this->objPermission->getPermissionUser('blg', $check);
// Board permissions.
$grouppermfor = $this->objPermission->getPermissionGroup('for', $perm['perm_id']);
$userpermfor = $this->objPermission->getPermissionUser('for', $check);
// Store permissions.
$grouppermstr = $this->objPermission->getPermissionGroup('str', $perm['perm_id']);
$userpermstr = $this->objPermission->getPermissionUser('str', $check);
// User permissions.
$grouppermusr = $this->objPermission->getPermissionGroup('usr', $perm['perm_id']);
$userpermusr = $this->objPermission->getPermissionUser('usr', $check);
// Image permissions.
$grouppermimg = $this->objPermission->getPermissionGroup('img', $perm['perm_id']);
$userpermimg = $this->objPermission->getPermissionUser('img', $check);
// Invoice permissions.
$groupperminv = $this->objPermission->getPermissionGroup('inv', $perm['perm_id']);
$userperminv = $this->objPermission->getPermissionUser('inv', $check);
// Now provide an array of user overwritten permissions if it exists. Otherwise, give its group permissions.
$blgarr = array();
$forarr = array();
$strarr = array();
$usrarr = array();
$imgarr = array();
$invarr = array();
if (!empty($userpermblg[0])) {
$blgarr = (array)$userpermblg[0];
}
else {
$blgarr = (array)$grouppermblg[0];
}
$blgarr = array_combine(
array_map(function($k){ return 'blg_'.$k; }, array_keys($blgarr)),
$blgarr
);
if (!empty($userpermfor[0])) {
$forarr = (array)$userpermfor[0];
}
else {
$forarr = (array)$grouppermfor[0];
}
$forarr = array_combine(
array_map(function($k){ return 'for_'.$k; }, array_keys($forarr)),
$forarr
);
if (!empty($userpermstr[0])) {
$strarr = (array)$userpermstr[0];
}
else {
$strarr = (array)$grouppermstr[0];
}
$strarr = array_combine(
array_map(function($k){ return 'str_'.$k; }, array_keys($strarr)),
$strarr
);
if (!empty($userpermusr[0])) {
$usrarr = (array)$userpermusr[0];
}
else {
$usrarr = (array)$grouppermusr[0];
}
$usrarr = array_combine(
array_map(function($k){ return 'usr_'.$k; }, array_keys($usrarr)),
$usrarr
);
if (!empty($userperminv[0])) {
$invarr = (array)$userperminv[0];
}
else {
$invarr = (array)$groupperminv[0];
}
$invarr = array_combine(
array_map(function($k){ return 'inv_'.$k; }, array_keys($invarr)),
$invarr
);
if (!empty($userpermimg[0])) {
$imgarr = (array)$userpermimg[0];
}
else {
$imgarr = (array)$grouppermimg[0];
}
$merge = array();
$merge1 = array();
$merge2 = array();
$merge3 = array();
$merge4 = array();
$merge1 = array_merge($blgarr, $forarr);
$merge2 = array_merge($strarr, $usrarr);
$merge3 = array_merge($merge1, $merge2);
$merge4 = array_merge($merge3, $invarr);
$merge = array_merge($merge4, $imgarr);
return $merge;
}
else {
// Page permissions.
$grouppermblg = $this->objPermission->getPermissionGroup('blg', 6);
// Forum permissions.
$grouppermfor = $this->objPermission->getPermissionGroup('for', 6);
// Store permissions.
$grouppermstr = $this->objPermission->getPermissionGroup('str', 6);
// User permissions.
$grouppermusr = $this->objPermission->getPermissionGroup('usr', 6);
// Image permissions.
$grouppermimg = $this->objPermission->getPermissionGroup('img', 6);
// Invoice permissions.
$groupperminv = $this->objPermission->getPermissionGroup('inv', 6);
// Since guests don't have user overwritten permissions, simply return the group permissions.
(array)$grouppermblg[0] = array_combine(
array_map(function($k){ return 'blg_'.$k; }, array_keys((array)$grouppermblg[0])),
(array)$grouppermblg[0]
);
(array)$grouppermfor[0] = array_combine(
array_map(function($k){ return 'for_'.$k; }, array_keys((array)$grouppermfor[0])),
(array)$grouppermfor[0]
);
(array)$grouppermstr[0] = array_combine(
array_map(function($k){ return 'str_'.$k; }, array_keys((array)$grouppermstr[0])),
(array)$grouppermstr[0]
);
(array)$grouppermusr[0] = array_combine(
array_map(function($k){ return 'usr_'.$k; }, array_keys((array)$grouppermusr[0])),
(array)$grouppermusr[0]
);
(array)$grouppermimg[0] = array_combine(
array_map(function($k){ return 'img_'.$k; }, array_keys((array)$grouppermimg[0])),
(array)$grouppermimg[0]
);
(array)$groupperminv[0] = array_combine(
array_map(function($k){ return 'inv_'.$k; }, array_keys((array)$groupperminv[0])),
(array)$groupperminv[0]
);
$merge = array();
$merge1 = array();
$merge2 = array();
$merge3 = array();
$merge4 = array();
$merge1 = array_merge((array)$grouppermblg[0], (array)$grouppermfor[0]);
$merge2 = array_merge((array)$grouppermstr[0], (array)$grouppermusr[0]);
$merge3 = array_merge($merge1, $merge2);
$merge4 = array_merge($merge3, (array)$groupperminv[0]);
$merge = array_merge($merge4, (array)$grouppermimg[0]);
return $merge;
}
}
public function register (Request $r) {
$ip = $_SERVER['REMOTE_ADDR'];
if (!empty($r)) {
$existUser = DB::table('users')->select('id')->where('username', $r->username)->count();
if ($existUser != 0) return array('err' => 'ユーザ名は既に登録しています。');
if (empty($r->username)) return array('err' => 'ユーザ名は空です。');
if (preg_match("/^[a-zA-Z0-9]+$/", $r->username) == 0) return array('err' => '英文字ばかりご入力下さい。');
if (empty($r->password)) return array('err' => 'パスワードは空です。');
if (empty($r->password_check)) return array('err' => 'パスワード(確認)は空です。');
if (strlen($r->password) < 8) return array('err' => 'パスワードは8文以上をご入力下さい。');
if ($r->password != $r->password_check) return array('err' => 'パスワードとパスワード(確認)は違います。');
$existEmail = DB::table('users')->select('id')->where('email', $r->email)->count();
if ($existEmail != 0) return array('err' => 'メールアドレスは既に登録しています。');
if (empty($r->email)) return array('err' => 'メールアドレスは空です。');
if (!filter_var($r->email, FILTER_VALIDATE_EMAIL)) return array('err' => 'メールアドレスを正しくご入力下さい。');
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
$passwd = hash('sha256', $r->password . $salt);
for ($round = 0; $round < 65536; $round++) { $passwd = hash('sha256', $passwd . $salt); }
$addUser = DB::table('users')
->insertGetId([
'username' => $r->username,
'email' => $r->email,
'password' => $passwd,
'salt' => $salt,
'remember_token' => '',
'kero_token' => $this->makeToken()
]);
DB::table('usr_details')
->insert([
'user_id' => $addUser,
'total_posts' => 0,
'total_threads' => 0,
'reg_date' => time(),
'last_post_date' => 0,
'last_post_location' => 0,
'ontime' => 0,
'strikes' => 0
]);
DB::table('usr_contacts')
->insert([
'user_id' => $addUser,
'website_link' => '',
'website_name' => '',
'youtube_link' => '',
'youtube_name' => '',
'bitchute' => '',
'niconico' => '',
'pixiv' => '',
'discord' => '',
'mastodon' => '',
'twitter' => '',
'facebook' => '',
'instagram' => ''
]);
DB::table('usr_profile')
->insert([
'user_id' => $addUser,
'gender' => ($r->gender ? $r->gender : 0),
'member_title' => '',
'website_address' => '',
'website_name' => '',
'location' => '',
'birthday' => 0,
'bio' => '',
'ip_address' => $ip,
'avatar' => '',
'ostatus' => 1,
'header' => '',
'footer' => '',
'post_style' => '',
'signature' => '',
'name_style' => '',
'display_name' => '',
'yt_channel' => '',
'country' => ($r->country ? $r->country : 'Japan'),
'date_format' => '',
'isClock24' => 1,
'isShowSeconds' => 1,
'isShowTimezone' => 1
]);
DB::table('usr_perm_id')
->insert([
'user_id' => $addUser,
'perm_id' => 4,
'usr_per_id' => 4,
'img_per_id' => 4,
'blg_per_id' => 4,
'for_per_id' => 4,
'sbx_per_id' => 4,
'str_per_id' => 4,
'doc_per_id' => 4,
'odb_per_id' => 4,
'inv_per_id' => 4,
]);
$checkName = DB::table('users')->select('kero_token')->where('id', $addUser)->first();
setcookie('kero_token', $checkName->kero_token, time()+157788000, '/', $_SERVER['HTTP_HOST'], 0, 1);
return $this->login($r);
//return array('1');
}
return array();
}
public function login (Request $r) {
if (!empty($r)) {
$checkName = DB::table('users')->where('username', $r->username)->first();
if ($checkName) {
// $checkName = json_decode(json_encode($checkName), true);
$checkPass = hash('sha256', $r->password . $checkName->salt);
for ($round = 0; $round < 65536; $round++) {
$checkPass = hash('sha256', $checkPass . $checkName->salt);
}
if (hash_equals($checkPass, $checkName->password)) {
if (!$checkName->kero_token) {
$checkName->kero_token = $this->makeToken();
DB::table('users')->where('id', $checkName->id)->update(['kero_token' => $checkName->kero_token]);
}
setcookie('kero_token', $checkName->kero_token, time()+157788000, '/', $_SERVER['HTTP_HOST'], 0, 1);
return array('uid' => $checkName->id, 'kero_token' => $checkName->kero_token);
}
}
return array('err' => 'ユーザ名又はパスワードを間違いました。');
}
return array('err' => 'フォームは空です。');
}
function makeToken() {
$c = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$!%&()';
$clen = strlen($c);
$token = '';
for ($i = 0; $i < 128; $i++) {
$token .= $c[rand(0, $clen - 1)];
}
return $token;
}
function CheckEmail($email) {
$get = DB::table('users')
->where('email', $email)
->count();
if ($get == 0) return 0;
else return 1;
}
public function SendReset(Request $r) {
$exist = $this->CheckEmail($r->email);
if ($exist == 0) {
return 0;
}
else {
$check = DB::table('usr_resets')
->select('token')
->where('email', $r->email)
->count();
if ($check > 0) {
DB::table('usr_resets')
->where('email', $r->email)
->delete();
}
$token = bin2hex(random_bytes(32));
$due = time() + (1 * 24 * 60 * 60);
DB::table('usr_resets')
->insert([
'email' => $r->email,
'token' => $token,
'due_date' => $due
]);
$get = DB::table('usr_resetmails')
->select('sender', 'sendname', 'subject', 'message')
->first();
$user = DB::table('users')
->select('username')
->where('email', $r->email)
->first();
$mess = str_replace('{user}', $user->username, $get->message);
$mess2 = str_replace('{link}', $token, $mess);
$mess2 = mb_convert_encoding($mess2, "ISO-2022-JP", "AUTO");
$subj = mb_convert_encoding($get->subject, "ISO-2022-JP", "AUTO");
$headers = "MIME-Version: 1.0"."\r\n";
$headers .= "Content-Type: text/plain; charset=ISO-2022-JP"."\r\n";
$headers .= "To: ".$r->email."\r\n";
$headers .= "From: ".mb_convert_encoding($get->sendname,"ISO-2022-JP","AUTO")." <".$get->sender.">"."\r\n";
mb_language("ja");
$res = mail(
$r->email,
$subj,
$mess2,
$headers,
"-f".$get->sender
);
return 1;
}
}
public function ConfirmReset($token) {
$get = DB::table('usr_resets')
->select('*')
->where('token', $token)
->first();
$within24hour = time() + (1 * 24 * 60 * 60);
if (empty($get)) {
return 0;
}
else {
if ($get->due_date > $within24hour) {
return 0;
}
else {
return 1;
}
}
}
public function PasswordReset(Request $r) {
if (empty($r->password)) {
return 0;
}
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
$passwd = hash('sha256', $r->password . $salt);
for ($round = 0; $round < 65536; $round++) {
$passwd = hash('sha256', $passwd . $salt);
}
$res = DB::table('users')
->where('email', $r->email)
->update([
'password' => $passwd,
'salt' => $salt
]);
return 1;
}
public function recover(Request $r) {
$user = User::where('email', $r->email)->first();
if (!$user) {
$error_message = "Your email address was not found.";
return response()->json(['success' => false, 'error' => ['email'=> $error_message]], 401);
}
try {
Password::sendResetLink($r->only('email'), function (Message $message) {
$message->subject('Your Password Reset Link');
});
} catch (\Exception $e) {
$error_message = $e->getMessage();
return response()->json(['success' => false, 'error' => $error_message], 401);
}
return response()->json([
'success' => true, 'data'=> ['message'=> 'A reset email has been sent! Please check your email.']
]);
}
public function checkAuth(Request $r) {
$get = DB::table('users')
->select('id', 'kero_token')
->where('kero_token', $r->kero_token)
->first();
$get = json_decode(json_encode($get), true);
return $get;
}
public function logout () {
if (isset($_COOKIE['kero_token'])) {
unset($_COOKIE['kero_token']);
setcookie('kero_token', '', time() - 3600, '/', $_SERVER['HTTP_HOST'], 0, 1);
}
return redirect('');
}
}

114
app/Http/Controllers/Engine.php ノーマルファイル
ファイルの表示

@ -0,0 +1,114 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class Engine {
public $user = 0;
public $err = '';
public $warn = '';
public $info = '';
public $suc = '';
public $css = array('app', 'logo', 'navbar', 'sidemenu', 'contents', 'scroll', 'badge', 'button', 'check', 'comments', 'form', 'modal', 'pagination', 'select', 'table');
public function __construct () {
$this->err = '';
$this->warn = '';
$this->info = '';
$this->suc = '';
if (isset($_COOKIE['language'])) app()->setLocale($_COOKIE['language']);
$this->id = checkLegit((isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''));
$this->user = $this->getLoggedUser((isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''));
if ($this->user && $this->user->profile->gender != 0) {
$css = $this->css;
foreach ($css as $c) {
$css[] = $c.'_'.($this->user->profile->gender == 1 ? 'm' : 'f');
}
$this->css = $css;
}
}
function getLoggedUser ($kero) {
$check = checkLegit($kero);
if ($check == 0) return 0;
// $cols = getGroupColours();
$get = $this->getUser($check);
return $get;
}
public function getUser ($id) {
$get = DB::table('users')->where('id', $id)->first();
unset($get->password); unset($get->salt); unset($get->remember_token);
$get->profile = DB::table('usr_profile')->where('user_id', $get->id)->first();
$get->profile->showname = (!empty($get->profile->display_name) && !is_null($get->profile->display_name) ? $get->profile->display_name : $get->username);
$perm_id = DB::table('usr_perm_id')->select('perm_id')->where('user_id', $get->id)->first()->perm_id;
$get->perm_module = DB::table('usr_perm_module')->where('usr_perm_id', $perm_id)->first();
$get->details = DB::table('usr_details')->where('user_id', $get->id)->first();
$get->contacts = DB::table('usr_contacts')->where('user_id', $get->id)->first();
$ucol = DB::table('usr_perm_module')->select('id', 'name', 'colour_m', 'colour_f', 'colour_u')->get();
if (!empty($get->profile->name_style)) $get->profile->name_style = $get->profile->name_style;
else {
foreach ($ucol as $j3) {
if ($j3->id == $perm_id) {
if ($get->profile->gender == 1) $get->profile->name_style = $j3->colour_m;
else if ($get->profile->gender == 2) $get->profile->name_style = $j3->colour_f;
else $get->profile->name_style = $j3->colour_u;
}
}
}
if ($get->profile->gender == 1) $get->profile->gender_name = '男性';
else if ($get->profile->gender == 2) $get->profile->gender_name = '女性';
else $get->profile->gender_name = '不明';
$get->perm = $this->getPermissions($get->kero_token);
if (empty($get->profile->avatar) || $get->profile->avatar == '') $get->profile->avatar = 'img/noicon.jpg';
$get->profile->avatar = '/'.$get->profile->avatar;
return $get;
}
public function getPermissionGroup($mdl, $id) { return DB::table($mdl.'_permissions')->where('id', $id)->get(); }
public function getPermissionUser($mdl, $id) { return DB::table($mdl.'_user_permissions')->where('user_id', $id)->get(); }
public function getPermissions ($token) {
$check = checkLegit($token);
$perm = DB::table('usr_perm_id')->select('perm_id')->where('user_id', $check)->first();
$perm = json_decode(json_encode($perm), true);
if ($check != 0) {
$grouppermblg = $this->getPermissionGroup('blg', $perm['perm_id']);
$userpermblg = $this->getPermissionUser('blg', $check);
$grouppermusr = $this->getPermissionGroup('usr', $perm['perm_id']);
$userpermusr = $this->getPermissionUser('usr', $check);
$blgarr = array();
$usrarr = array();
if (!empty($userpermblg[0])) $blgarr = (array)$userpermblg[0];
else $blgarr = (array)$grouppermblg[0];
$blgarr = array_combine(array_map(function($k){ return 'blg_'.$k; }, array_keys($blgarr)), $blgarr);
if (!empty($userpermusr[0])) $usrarr = (array)$userpermusr[0];
else $usrarr = (array)$grouppermusr[0];
$usrarr = array_combine(array_map(function($k){ return 'usr_'.$k; }, array_keys($usrarr)), $usrarr);
return array_merge($blgarr, $usrarr);
}
else {
$grouppermblg = $this->getPermissionGroup('blg', 6);
$grouppermusr = $this->getPermissionGroup('usr', 6);
(array)$grouppermblg[0] = array_combine(array_map(function($k){ return 'blg_'.$k; }, array_keys((array)$grouppermblg[0])), (array)$grouppermblg[0]);
(array)$grouppermusr[0] = array_combine(array_map(function($k){ return 'usr_'.$k; }, array_keys((array)$grouppermusr[0])), (array)$grouppermusr[0]);
return array_merge((array)$grouppermblg[0], (array)$grouppermusr[0]);
}
}
}

ファイルの表示

@ -6,27 +6,23 @@ use Illuminate\Http\Request;
// use Illuminate\Support\Facades\Log;
class Comment {
public function __construct () {
}
public function add (Request $r) {
$com = $r->comment;
if ($r->isvideo == 'f') $id = DB::table('blg_content')->select('id')->where('slug', $r->slug)->first()->id;
$shadow = DB::table('blg_blacklist')->where('ipaddress', getIp())->first();
if ($shadow && !$shadow->isShadow) return array('status' => '0101FF', 'message' => '失礼しますが、あなたはBANされていましたので、コメントを保存できません。');
$add = DB::table('blg_comments')
->insertGetId([
'user_id' => ($r->user_id != 0 ?: null),
'post_id' => ($r->isvideo == 'f' ? $id : 0),
'video_id' => ($r->isvideo == 't' ? $r->slug : ''),
'name' => (isset($com['name']) ? $com['name'] : null),
'email' => (isset($com['mail']) ? $com['mail'] : null),
'message' => $com['text'],
'created' => time(),
'ipaddress' => getIp(),
'isShadow' => ($shadow ? 0 : 1)
]);
$add = DB::table('blg_comments')->insertGetId([
'user_id' => ($r->user_id != 0 ?: null),
'post_id' => ($r->isvideo == 'f' ? $id : 0),
'video_id' => ($r->isvideo == 't' ? $r->slug : ''),
'name' => (isset($com['name']) ? $com['name'] : null),
'email' => (isset($com['mail']) ? $com['mail'] : null),
'message' => $com['text'],
'created' => time(),
'ipaddress' => getIp(),
'isShadow' => ($shadow ? 0 : 1)
]);
// 返事だったら、メールを送って
@ -45,4 +41,4 @@ class Comment {
return array('status' => '010100', 'message' => 'OK', 'result' => $res);
}
}
}

ファイルの表示

@ -2,28 +2,20 @@
namespace App\Http\Controllers\Home;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Engine;
// use Illuminate\Support\Facades\Log;
use App\Http\Controllers\UserController;
class CommentList extends Engine {
private $engine;
class CommentList {
private $objUser;
private $valid;
private $menu;
private $user;
public function __construct ($v, $m, $u) {
$this->objUser = new UserController();
$this->valid = $v;
$this->menu = $m;
$this->user = $u;
public function __construct () {
$this->engine = new Engine();
}
public function index () {
if ($this->valid['usr_ban'] != 1) return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
if (getPerms()['usr_ban'] != 1) return view('pages.site.notallowed', ['user' => $this->engine->user]);
$get = DB::table('blg_comments')->orderBy('created', 'desc')->paginate(10);
setlocale(LC_ALL, 'ja_JP.utf8');
$ucol = $this->objUser->getGroupColours();
foreach ($get as $g) {
if (!is_null($g->user_id)) {
@ -60,7 +52,7 @@ class CommentList {
if (!empty($g->name_style)) $g->showcol = $g->name_style;
else {
foreach ($ucol as $j) {
foreach (getGroupColours() as $j) {
if ($j->id == $g->perm_id) {
if ($g->gender == 1) $g->showcol = $j->colour_m;
else if ($g->gender == 2) $g->showcol = $j->colour_f;
@ -87,6 +79,6 @@ class CommentList {
$g->created = date('Y年m月d日 H:i:s', $g->created);
}
return view('pages.site.commentlist', ['res' => $get, 'menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.commentlist', ['res' => $get, 'user' => $this->engine->user]);
}
}

ファイルの表示

@ -3,25 +3,24 @@
namespace App\Http\Controllers\Home;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Controllers\Engine;
// use Illuminate\Support\Facades\Log;
class Content {
class Content extends Engine {
private $engine;
private $valid;
private $menu;
private $user;
public function __construct ($v, $m, $u) {
$this->valid = $v;
$this->menu = $m;
$this->user = $u;
public function __construct () {
$this->engine = new Engine();
$this->valid = getPerms();
}
public function add (Request $r) {
if ($this->user && ($this->user->perm['blg_addpost'] || $this->user->perm['blg_addpage'])) {
if ($this->engine->user && ($this->engine->user->perm['blg_addpost'] || $this->engine->user->perm['blg_addpage'])) {
$err = '';
$res = '';
$frm = array(
'user_id' => $this->user->id,
'user_id' => $this->engine->user->id,
'title' => '',
'slug' => '',
'public_status' => 0,
@ -74,7 +73,7 @@ class Content {
}
// エラーがあったら、フォームに戻って。なければ、データベースに保存したり、ページ又はポストへ移転して
if (!empty($err)) return view('pages.site.content.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
if (!empty($err)) return view('pages.site.content.add', ['res' => $res, 'err' => $err, 'frm' => $frm]);
else {
// データベースに追加できるには、値を修正して
$gs = DB::table('blg_content')->select('sortorder')->orderBy('sortorder', 'desc')->first();
@ -92,15 +91,15 @@ class Content {
$frm['publish_date'] = $sav;
unset($frm['post_date']);
unset($frm['sortorder']);
return view('pages.site.content.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $res['err']]);
return view('pages.site.content.add', ['res' => $res, 'err' => $err, 'frm' => $res['err']]);
}
}
}
return view('pages.site.content.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
return view('pages.site.content.add', ['res' => $res, 'err' => $err, 'frm' => $frm]);
}
return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.notallowed');
}
public function delete (Request $r) {
@ -113,9 +112,9 @@ class Content {
}
public function edit (Request $r) {
if ($this->user && ($this->user->perm['blg_editpost'] || $this->user->perm['blg_editpage'])) {
if ($this->engine->user && ($this->engine->user->perm['blg_editpost'] || $this->engine->user->perm['blg_editpage'])) {
$frm = DB::table('blg_content')->where('slug', $r->slug)->first();
if (!$frm) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if (!$frm) return view('pages.site.notfound');
$err = '';
$res = '';
@ -155,7 +154,7 @@ class Content {
if (count($incomplete) > 0) $err = implode('、', $incomplete).'をご入力下さい。';
// エラーがあったら、フォームに戻って。なければ、データベースに保存したり、ページ又はポストへ移転して
if (!empty($err)) return view('pages.site.content.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
if (!empty($err)) return view('pages.site.content.edit', ['res' => $res, 'err' => $err, 'frm' => $frm]);
else {
// データベースに追加できるには、値を修正して
$gs = DB::table('blg_content')->select('sortorder')->orderBy('sortorder', 'desc')->first();
@ -173,14 +172,14 @@ class Content {
$frm->publish_date = $sav;
unset($frm->post_date);
unset($frm->sortorder);
return view('pages.site.content.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $res['err']]);
return view('pages.site.content.edit', ['res' => $res, 'err' => $err, 'frm' => $res['err']]);
}
}
}
return view('pages.site.content.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
return view('pages.site.content.edit', ['res' => $res, 'err' => $err, 'frm' => $frm]);
}
return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.notallowed');
}
}
}

ファイルの表示

@ -4,19 +4,11 @@ namespace App\Http\Controllers\Home;
use Illuminate\Support\Facades\DB;
// use Illuminate\Support\Facades\Log;
use App\Http\Controllers\UserController;
class Index {
private $objUser;
private $valid;
private $menu;
private $user;
public function __construct ($v, $m, $u) {
$this->objUser = new UserController();
$this->valid = $v;
$this->menu = $m;
$this->user = $u;
public function __construct () {
$this->valid = getPerms();
}
public function index () {
@ -25,7 +17,7 @@ class Index {
$get = $get->orderBy('publish_date', 'desc')->paginate(10);
setlocale(LC_ALL, 'ja_JP.utf8');
return view('pages.site.index', ['res' => $get, 'menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.index', ['res' => $get]);
}
public function page ($slug) {
@ -34,17 +26,17 @@ class Index {
if ($this->valid['blg_editpage'] == 0) $res = $res->where('public_status', 0);
$res = $res->where('isPost', 0)->where('slug', $slug)->orderBy('sortorder', 'asc')->first();
if (!$res) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.page', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user]);
if (!$res) return view('pages.site.notfound');
return view('pages.site.page', ['res' => $res]);
}
public function post ($slug, $kero) {
public function post ($slug) {
$get = DB::table('blg_content');
if ($this->valid['blg_editpost'] == 0) $get = $get->where('public_status', 0);
$get = $get->where('isPost', 1)->where('slug', $slug)->first();
if (!$get) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if (!$get) return view('pages.site.notfound');
$ucol = $this->objUser->getGroupColours();
$ucol = getGroupColours();
setlocale(LC_ALL, 'ja_JP.utf8');
$get->showName = '';
@ -64,6 +56,7 @@ class Index {
foreach ($get->comments['come'] as $k => $c) {
$c->replyCount = 0;
$c->isvideo = 'f';
$c->src = 'TS';
if (!is_null($c->user_id) && !empty(userDetail($c->user_id))) {
$det = userDetail($c->user_id);
@ -98,10 +91,10 @@ class Index {
}
}
$get->user = userDetail(null, $kero);
$get->user = userDetail(null, (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''));
$get->post_date = strftime('%Y/%m/%d(%a) %H:%M:%S %Z', $get->post_date);
$get->publish_date = strftime('%Y/%m/%d(%a) %H:%M:%S %Z', $get->publish_date);
return view('pages.site.post', ['res' => $get, 'menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.post', ['res' => $get]);
}
}

ファイルの表示

@ -1,77 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
// use Illuminate\Support\Facades\Log;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\Home\Comment;
use App\Http\Controllers\Home\Content;
use App\Http\Controllers\Home\Index;
class HomeController extends Controller {
private $objAuth;
private $objUser;
private $valid;
private $menu;
private $user;
public function __construct () {
if (isset($_COOKIE['language'])) app()->setLocale($_COOKIE['language']);
$this->objAuth = new AuthController();
$this->objUser = new UserController();
$this->valid = $this->objAuth->getPermissions((isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''));
$this->menu = getPagesInMenu();
$this->cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : '');
$this->id = checkLegit($this->cook);
$this->user = $this->objUser->getLoggedUser($this->id, $this->cook);
}
public function index () {
$r = new Index($this->valid, $this->menu, $this->user);
return $r->index();
}
public function post ($slug) {
$r = new Index($this->valid, $this->menu, $this->user);
return $r->post($slug, $this->cook);
}
public function page ($slug) {
$r = new Index($this->valid, $this->menu, $this->user);
return $r->page($slug);
}
public function memberList () {
$r = new \App\Http\Controllers\User\MemberList($this->valid, $this->menu, $this->user);
return $r->index();
}
public function commentList () {
$r = new \App\Http\Controllers\Home\CommentList($this->valid, $this->menu, $this->user);
return $r->index();
}
public function newComment (Request $rr) {
$r = new Comment();
return $r->add($rr);
}
public function addContent (Request $rr) {
$r = new Content($this->valid, $this->menu, $this->user);
return $r->add($rr);
}
public function editContent (Request $rr) {
$r = new Content($this->valid, $this->menu, $this->user);
return $r->edit($rr);
}
public function delContent (Request $rr) {
$r = new Content($this->valid, $this->menu, $this->user);
return $r->delete($rr);
}
}

ファイルの表示

@ -7,8 +7,6 @@ use Illuminate\Http\Request;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\AuthController;
class NihonController extends Controller {
public function __construct() {}

ファイルの表示

@ -1,42 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class PermissionController extends Controller {
public function getPermissionsFromModule() { // /api/rpc/permission/getpermissionsfrommodule
return DB::table('usr_perm_module')
->select('*')
->get();
}
public function getPermissionFromModule($id) { // /api/rpc/permission/getpermissionsfrommodule/id
return DB::table('usr_perm_module')
->select('*')
->where('id', $id)
->get();
}
public function getPermissions($mdl) { // /api/rpc/permission/getpermissions/mdl
return DB::table($mdl.'_permissions')
->select('*')
->get();
}
public function getPermissionGroup($mdl, $id) { // /api/rpc/permission/getpermissiongroup/mdl/id
return DB::table($mdl.'_permissions')
->select('*')
->where('id', $id)
->get();
}
public function getPermissionUser($mdl, $id) { // /api/rpc/permission/getpermissionuser/mdl/id
return DB::table($mdl.'_user_permissions')
->select('*')
->where('user_id', $id)
->get();
}
}

ファイルの表示

@ -5,27 +5,42 @@ use Illuminate\Http\Request;
// use Illuminate\Support\Facades\Log;
class Login {
private $auth;
private $menu;
private $user;
public function __construct ($a, $m, $u) {
$this->auth = $a;
$this->menu = $m;
$this->user = $u;
}
public function index (Request $r) {
if (isset($_COOKIE['kero_token'])) return redirect('');
$res = array();
$err = '';
if (isset($r->username) && isset($r->password)) {
$res = $this->auth->login($r);
$res = $this->login($r);
if (isset($res['kero_token'])) return redirect('');
$err = $res['err'];
}
return view('pages.site.login', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err]);
return view('pages.site.login', ['res' => $res, 'err' => $err]);
}
}
public function login (Request $r) {
if (!empty($r)) {
$checkName = DB::table('users')->where('username', $r->username)->first();
if ($checkName) {
// $checkName = json_decode(json_encode($checkName), true);
$checkPass = hash('sha256', $r->password . $checkName->salt);
for ($round = 0; $round < 65536; $round++) $checkPass = hash('sha256', $checkPass . $checkName->salt);
if (hash_equals($checkPass, $checkName->password)) {
if (!$checkName->kero_token) {
$checkName->kero_token = makeToken();
DB::table('users')->where('id', $checkName->id)->update(['kero_token' => $checkName->kero_token]);
}
setcookie('kero_token', $checkName->kero_token, time()+157788000, '/', $_SERVER['HTTP_HOST'], 0, 1);
return array('uid' => $checkName->id, 'kero_token' => $checkName->kero_token);
}
}
return array('err' => 'ユーザ名又はパスワードを間違いました。');
}
return array('err' => 'フォームは空です。');
}
}

15
app/Http/Controllers/User/Logout.php ノーマルファイル
ファイルの表示

@ -0,0 +1,15 @@
<?php
namespace App\Http\Controllers\User;
// use Illuminate\Support\Facades\Log;
class Logout {
public function index () {
if (isset($_COOKIE['kero_token'])) {
unset($_COOKIE['kero_token']);
setcookie('kero_token', '', time() - 3600, '/', $_SERVER['HTTP_HOST'], 0, 1);
}
return redirect('');
}
}

ファイルの表示

@ -2,28 +2,20 @@
namespace App\Http\Controllers\User;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Engine;
// use Illuminate\Support\Facades\Log;
use App\Http\Controllers\UserController;
class MemberList extends Engine {
private $engine;
class MemberList {
private $objUser;
private $valid;
private $menu;
private $user;
public function __construct ($v, $m, $u) {
$this->objUser = new UserController();
$this->valid = $v;
$this->menu = $m;
$this->user = $u;
public function __construct () {
$this->engine = new Engine();
}
public function index () {
if ($this->valid['usr_ban'] != 1) return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
if (getPerms()['usr_ban'] != 1) return view('pages.site.notallowed', ['user' => $this->user]);
$get = DB::table('users')->orderBy('id', 'desc')->paginate(10);
setlocale(LC_ALL, 'ja_JP.utf8');
$ucol = $this->objUser->getGroupColours();
foreach ($get as $g) {
if (!is_null($g->id)) {
@ -54,7 +46,7 @@ class MemberList {
if (!empty($g->name_style)) $g->showcol = $g->name_style;
else {
foreach ($ucol as $j) {
foreach (getGroupColours() as $j) {
if ($j->id == $g->perm_id) {
if ($g->gender == 1) $g->showcol = $j->colour_m;
else if ($g->gender == 2) $g->showcol = $j->colour_f;
@ -71,6 +63,6 @@ class MemberList {
else $g->gender = '?';
}
return view('pages.site.memberlist', ['res' => $get, 'menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.memberlist', ['res' => $get, 'user' => $this->user]);
}
}

ファイルの表示

@ -3,26 +3,21 @@
namespace App\Http\Controllers\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Controllers\Engine;
// use Illuminate\Support\Facades\Log;
class Profile {
private $auth;
class Profile extends Engine {
private $engine;
private $get;
private $cntr;
private $menu;
private $user;
public function __construct ($a, $g, $c, $m, $u) {
$this->auth = $a;
$this->get = $g;
$this->cntr = $c;
$this->menu = $m;
$this->user = $u;
public function __construct () {
$this->engine = new Engine;
}
public function index ($id, $kero) {
if (!$this->get) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.profile', ['res' => $this->get, 'menu' => $this->menu, 'user' => $this->user]);
public function index ($id) {
$this->get = $this->engine->getUser($id);
if (!$this->get) return view('pages.site.notfound');
return view('pages.site.profile', ['res' => $this->get]);
}
public function avatarUpload(Request $r) {
@ -30,7 +25,7 @@ class Profile {
if ($check == 0) return 'Err!';
else {
$valid = $this->auth->getPermissions($r->kero_token);
$valid = getPerms();
$user = 0;
if ($valid['usr_editother'] == 1) $user = $r->id;
@ -60,39 +55,36 @@ class Profile {
}
public function edit ($id, Request $r) {
$err = '';
$suc = '';
$valid = $this->auth->getPermissions($this->user->kero_token);
$user = $this->user->id;
if (($valid['usr_editother'] == 0 && $user != $id)) return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
$user = $this->engine->user;
if ((getPerms()['usr_editother'] == 0 && $user != $id)) return view('pages.site.notallowed');
$this->get = $this->engine->getUser($id);
if (isset($r->submit)) {
if (!is_null($r->password)) {
if ($r->password != $r->password_check) $err = '「パスワード」と「パスワード確認」が異なります。';
if ($r->password != $r->password_check) $this->engine->err = '「パスワード」と「パスワード確認」が異なります。';
else {
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
$passwd = hash('sha256', $r->password . $salt);
for ($round = 0; $round < 65536; $round++) { $passwd = hash('sha256', $passwd . $salt); }
$eduserp = DB::table('users')->where('id', $id)->update(['password' => $passwd, 'salt' => $salt]);
if (!$eduserp) $err = 'パスワードの編集失敗。';
if (!$eduserp) $this->engine->err = 'パスワードの編集失敗。';
}
}
$cheml = DB::table('users')->select('email')->where('id', $id)->first();
if ($err == '') {
if ($this->engine->err == '') {
if ($cheml->email != $r->email) {
$exeml = DB::table('users')->select('email')->where('email', $r->email)->count();
if ($exeml > 0) $err = '入力したメールアドレスはもう存在しています。';
if ($exeml > 0) $this->engine->err = '入力したメールアドレスはもう存在しています。';
else {
$edusere = DB::table('users')->where('id', $id)->update(['email' => $r->email]);
if (!$edusere) $err = 'メールアドレスの編集失敗。';
if (!$edusere) $this->engine->err = 'メールアドレスの編集失敗。';
}
}
}
if ($err == '') {
if ($this->engine->err == '') {
$p = DB::table('usr_profile')->select('display_name', 'country', 'gender')->where('user_id', $id)->first();
$edprofile = 1;
if ($p->display_name != $r->display_name || $p->country != $r->country || $p->gender != $r->gender) {
@ -103,13 +95,13 @@ class Profile {
]);
}
if (!$edprofile) $err = '表示名、お国、又は性別の編集失敗。';
if (!$edprofile) $this->engine->err = '表示名、お国、又は性別の編集失敗。';
else return redirect('/');
}
}
if (!$this->get) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if ($this->user) return view('pages.site.profileedit', ['res' => $this->get, 'menu' => $this->menu, 'user' => $this->user, 'suc' => $suc, 'err' => $err, 'cnt' => $this->cntr]);
return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if (!$this->get) return view('pages.site.notfound');
if ($this->engine->user) return view('pages.site.profileedit', ['res' => $this->get, 'suc' => $this->engine->suc, 'err' => $this->engine->err]);
return view('pages.site.notfound');
}
}

ファイルの表示

@ -2,20 +2,11 @@
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Engine;
// use Illuminate\Support\Facades\Log;
class Register {
private $auth;
private $cntr;
private $menu;
private $user;
public function __construct ($a, $c, $m, $u) {
$this->auth = $a;
$this->cntr = $c;
$this->menu = $m;
$this->user = $u;
}
public function __construct () {}
public function index (Request $r) {
if (isset($_COOKIE['kero_token'])) return redirect('');
@ -24,11 +15,50 @@ class Register {
if (isset($r->username) && isset($r->password) && isset($r->email) && isset($r->password_check)) {
$save = array('username' => $r->username, 'email' => $r->email, 'country' => $r->country, 'gender' => $r->gender);
$reg = $this->auth->register($r);
$reg = $this->register($r);
if (isset($reg['kero_token'])) return redirect('');
$err = $reg['err'];
}
return view('pages.site.register', ['res' => $this->cntr, 'menu' => $this->menu, 'user' => $this->user, 'sav' => $save, 'err' => $err]);
return view('pages.site.register', ['sav' => $save, 'err' => $err]);
}
public function register (Request $r) {
$ip = $_SERVER['REMOTE_ADDR'];
if (!empty($r)) {
$existUser = DB::table('users')->select('id')->where('username', $r->username)->count();
if ($existUser != 0) return array('err' => 'ユーザ名は既に登録しています。');
if (empty($r->username)) return array('err' => 'ユーザ名は空です。');
if (preg_match("/^[a-zA-Z0-9]+$/", $r->username) == 0) return array('err' => '英文字ばかりご入力下さい。');
if (empty($r->password)) return array('err' => 'パスワードは空です。');
if (empty($r->password_check)) return array('err' => 'パスワード(確認)は空です。');
if (strlen($r->password) < 8) return array('err' => 'パスワードは8文以上をご入力下さい。');
if ($r->password != $r->password_check) return array('err' => 'パスワードとパスワード(確認)は違います。');
$existEmail = DB::table('users')->select('id')->where('email', $r->email)->count();
if ($existEmail != 0) return array('err' => 'メールアドレスは既に登録しています。');
if (empty($r->email)) return array('err' => 'メールアドレスは空です。');
if (!filter_var($r->email, FILTER_VALIDATE_EMAIL)) return array('err' => 'メールアドレスを正しくご入力下さい。');
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
$passwd = hash('sha256', $r->password . $salt);
for ($round = 0; $round < 65536; $round++) { $passwd = hash('sha256', $passwd . $salt); }
$addUser = DB::table('users')->insertGetId(['username' => $r->username, 'email' => $r->email, 'password' => $passwd, 'salt' => $salt, 'remember_token' => '', 'kero_token' => makeToken()]);
DB::table('usr_details')->insert(['user_id' => $addUser, 'total_posts' => 0, 'total_threads' => 0, 'reg_date' => time(), 'last_post_date' => 0, 'last_post_location' => 0, 'ontime' => 0, 'strikes' => 0]);
DB::table('usr_contacts')->insert(['user_id' => $addUser, 'website_link' => '', 'website_name' => '', 'youtube_link' => '', 'youtube_name' => '', 'bitchute' => '', 'niconico' => '', 'pixiv' => '', 'discord' => '', 'mastodon' => '', 'twitter' => '', 'facebook' => '', 'instagram' => '']);
DB::table('usr_profile')->insert(['user_id' => $addUser, 'gender' => ($r->gender ? $r->gender : 0), 'member_title' => '', 'website_address' => '', 'website_name' => '', 'location' => '', 'birthday' => 0, 'bio' => '', 'ip_address' => $ip, 'avatar' => '', 'ostatus' => 1, 'header' => '', 'footer' => '', 'post_style' => '', 'signature' => '', 'name_style' => '', 'display_name' => '', 'yt_channel' => '', 'country' => ($r->country ? $r->country : 'Japan'), 'date_format' => '', 'isClock24' => 1, 'isShowSeconds' => 1, 'isShowTimezone' => 1]);
DB::table('usr_perm_id')->insert(['user_id' => $addUser, 'perm_id' => 4, 'usr_per_id' => 4, 'img_per_id' => 4, 'blg_per_id' => 4, 'for_per_id' => 4, 'sbx_per_id' => 4, 'str_per_id' => 4, 'doc_per_id' => 4, 'odb_per_id' => 4, 'inv_per_id' => 4]);
$checkName = DB::table('users')->select('kero_token')->where('id', $addUser)->first();
setcookie('kero_token', $checkName->kero_token, time()+157788000, '/', $_SERVER['HTTP_HOST'], 0, 1);
return $this->login($r);
//return array('1');
}
return array();
}
}

ファイルの表示

@ -1,156 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
// use Illuminate\Support\Facades\Log;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\User\Login;
use App\Http\Controllers\User\Notification;
use App\Http\Controllers\User\Profile;
use App\Http\Controllers\User\Register;
class UserController extends Controller {
private $objAuth;
private $valid;
public function __construct () {
if (isset($_COOKIE['language'])) app()->setLocale($_COOKIE['language']);
$this->objAuth = new AuthController();
$this->menu = getPagesInMenu();
$this->cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : '');
$this->id = checkLegit($this->cook);
$this->user = $this->getLoggedUser($this->id, $this->cook);
}
public function profile ($id) {
$r = new Profile($this->objAuth, $this->getUser($id, $this->cook), $this->getCountries(), $this->menu, $this->user);
return $r->index($id, $this->cook);
}
public function editProfile ($id, Request $rr) {
$r = new Profile($this->objAuth, $this->getUser($id, $this->cook), $this->getCountries(), $this->menu, $this->user);
return $r->edit($id, $rr);
}
public function login (Request $rr) {
$r = new Login($this->objAuth, $this->menu, $this->user);
return $r->index($rr);
}
public function register (Request $rr) {
$r = new Register($this->objAuth, $this->getCountries(), $this->menu, $this->user);
return $r->index($rr);
}
public function getNotification () {
$r = new Notification();
return $r->get();
}
public function addNotification ($uid, $aid, $txt, $sec, $goto) {
$r = new Notification();
return $r->add($uid, $aid, $txt, $sec, $goto);
}
public function delNotification ($id) {
$r = new Notification();
return $r->delete($id);
}
function getUser ($id, $kero) {
$check = checkLegit($kero);
$valid = $this->objAuth->getPermissions($kero);
$cols = $this->getGroupColours()->toArray();
$get = DB::table('users')->where('id', $id)->first();
if (!$get) return false;
$get->details = DB::table('usr_details')->where('user_id', $id)->first();
$get->profile = DB::table('usr_profile')->where('user_id', $id)->first();
$get->contacts = DB::table('usr_contacts')->where('user_id', $id)->first();
$get->perm_id = DB::table('usr_perm_id')->where('user_id', $id)->first();
$get->perm_module = DB::table('usr_perm_module')->where('usr_perm_id', $get->perm_id->usr_per_id)->first();
if (is_null($get->profile->avatar) || empty($get->profile->avatar) || $get->profile->avatar == '') {
$get->profile->avatar = 'http'.(isset($_SERVER['HTTPS']) ? 's' : '').'://'.$_SERVER['HTTP_HOST'].'/img/noicon.jpg';
}
else $get->profile->avatar = '/'.$get->profile->avatar;
$get->profile->gender_name = '不明';
if ($get->profile->gender == 1) $get->profile->gender_name = '男性';
else if ($get->profile->gender == 2) $get->profile->gender_name = '女性';
$get->details->reg_date = strftime('%Y年%m月%d日(%a)', $get->details->reg_date);
$get->profile->showname = (!empty($get->profile->display_name) && !is_null($get->profile->display_name) ? $get->profile->display_name : $get->username);
if ($id != $check) {
unset($get->password);
unset($get->kero_token);
unset($get->salt);
}
if ($valid['usr_emailshow'] == 0 && $id != $check) unset($get->email);
if ($valid['usr_ipshow'] == 0 && $id != $check) unset($get->profile->ip_address);
if ($valid['usr_canwarn'] == 0 && $id != $check) unset($get->details->strikes);
return $get;
}
function getLoggedUser ($id, $kero) {
$check = checkLegit($kero);
if ($check == 0) return 0;
$valid = $this->objAuth->getPermissions($kero);
$cols = $this->getGroupColours()->toArray();
$get = DB::table('users')->where('id', $id)->first();
$get->profile = DB::table('usr_profile')->where('user_id', $id)->first();
$get->profile->showname = (!empty($get->profile->display_name) && !is_null($get->profile->display_name) ? $get->profile->display_name : $get->username);
$perm_id = DB::table('usr_perm_id')->select('perm_id')->where('user_id', $get->id)->first()->perm_id;
$ucol = DB::table('usr_perm_module')->select('id', 'colour_m', 'colour_f', 'colour_u')->get();
if (!empty($get->profile->name_style)) $get->profile->name_style = $get->profile->name_style;
else {
foreach ($ucol as $j3) {
if ($j3->id == $perm_id) {
if ($get->profile->gender == 1) $get->profile->name_style = $j3->colour_m;
else if ($get->profile->gender == 2) $get->profile->name_style = $j3->colour_f;
else $get->profile->name_style = $j3->colour_u;
}
}
}
$get->perm = $valid;
if (empty($get->profile->avatar) || $get->profile->avatar == '') $get->profile->avatar = 'img/noicon.jpg';
$get->profile->avatar = '/'.$get->profile->avatar;
return $get;
}
function getCountries () {
$flags = DB::table('nhn_country')->orderBy('id', 'asc')->get();
$res = array();
foreach ($flags as $flag) {
$protocol = isset($_SERVER["HTTPS"]) ? 'https' : 'http';
$res[] = array(
'value' => $flag->nameEng,
'label' => $flag->name
);
}
return $res;
}
function getGroupName($id) {
return DB::table('usr_perm_module')->join('usr_perm_id', 'usr_perm_id.perm_id', '=', 'usr_perm_module.id')->where('user_id', $id)->get(array('name'));
}
function getGroupColours() {
return DB::table('usr_perm_module')->select('id', 'colour_m', 'colour_f', 'colour_u')->get();
}
}

ファイルの表示

@ -3,32 +3,27 @@
namespace App\Http\Controllers\Video;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Controllers\Engine;
// use Illuminate\Support\Facades\Log;
class Game {
private $menu;
private $user;
private $suc;
private $err;
class Game extends Engine {
private $engine;
public function __construct ($m, $u) {
$this->menu = $m;
$this->user = $u;
$this->suc = '';
$this->err = '';
public function __construct () {
$this->engine = new Engine;
}
public function index () {
$res = DB::table('vid_game')->get();
if (!$res) return notfound($this->menu, $this->user, $res);
if (!$res) return view('pages.site.notfound');
$new = DB::table('vid_video')->orderBy('publish_date', 'desc')->limit(8)->get();
$pop = DB::table('vid_video')->orderBy('view', 'desc')->orderBy('publish_date', 'desc')->limit(8)->get();
return view('pages.site.video.game', ['res' => $res, 'new' => $new, 'pop' => $pop, 'menu' => $this->menu, 'user' => $this->user, 'err' => $this->err, 'suc' => $this->suc]);
return view('pages.site.video.game', ['res' => $res, 'new' => $new, 'pop' => $pop, 'err' => $this->engine->err, 'suc' => $this->engine->suc]);
}
public function add (Request $r) {
if ($this->user && $this->user->perm['blg_addpost']) {
if ($this->engine->user && $this->engine->user->perm['blg_addpost']) {
$err = '';
$res = '';
$frm = array('name' => '', 'slug' => '');
@ -52,25 +47,25 @@ class Game {
}
// エラーがあったら、フォームに戻って。なければ、データベースに保存したり、ページ又はポストへ移転して
if (!empty($err)) return view('pages.site.video.game.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
if (!empty($err)) return view('pages.site.video.game.add', ['res' => $res, 'err' => $err, 'frm' => $frm]);
else {
// できたの?
if ($res = DB::table('vid_game')->insert($frm)) return redirect('/video/'.$r->slug);
else {
// やれやれ…
return view('pages.site.video.game.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
return view('pages.site.video.game.add', ['res' => $res, 'err' => $err, 'frm' => $frm]);
}
}
}
return view('pages.site.video.game.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
return view('pages.site.video.game.add', ['res' => $res, 'err' => $err, 'frm' => $frm]);
}
return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.notallowed');
}
public function delete (Request $r) {
if ($this->user->perm['blg_delpost']) {
if ($this->engine->user->perm['blg_delpost']) {
return DB::table('vid_game')->where('slug', $r->slug)->delete();
}
@ -78,9 +73,9 @@ class Game {
}
public function edit (Request $r) {
if ($this->user && $this->user->perm['blg_addpost']) {
if ($this->engine->user && $this->engine->user->perm['blg_addpost']) {
$frm = DB::table('vid_game')->where('slug', $r->slug)->first();
if (!$frm) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if (!$frm) return view('pages.site.notfound');
$err = '';
$res = '';
@ -96,21 +91,21 @@ class Game {
if (count($incomplete) > 0) $err = implode('、', $incomplete).'をご入力下さい。';
// エラーがあったら、フォームに戻って。なければ、データベースに保存したり、ページ又はポストへ移転して
if (!empty($err)) return view('pages.site.video.game.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
if (!empty($err)) return view('pages.site.video.game.edit', ['res' => $res, 'err' => $err, 'frm' => $frm]);
else {
// できたの?
if ($res = DB::table('vid_game')->where('slug', $r->slug)->update((array)$frm)) return redirect('/video/'.$r->slug);
else {
// やれやれ…
$err = '編集失敗…';
return view('pages.site.video.game.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
return view('pages.site.video.game.edit', ['res' => $res, 'err' => $err, 'frm' => $frm]);
}
}
}
return view('pages.site.video.game.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm]);
return view('pages.site.video.game.edit', ['res' => $res, 'err' => $err, 'frm' => $frm]);
}
return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.notallowed');
}
}

ファイルの表示

@ -2,24 +2,21 @@
namespace App\Http\Controllers\Video;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Engine;
// use Illuminate\Support\Facades\Log;
class Prayer {
private $menu;
private $cook;
private $user;
class Prayer extends Engine {
private $engine;
public function __construct ($m, $c, $u) {
$this->menu = $m;
$this->cook = $c;
$this->user = $u;
public function __construct () {
$this->engine = new Engine;
}
public function index ($vid) {
$res = DB::table('vid_video')->where('vid', $vid)->first();
if (!$res) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if (!$res) return view('pages.site.notfound');
$game = DB::table('vid_game')->where('id', $res->game_id)->first();
if (!$game) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if (!$game) return view('pages.site.notfound');
$res->publish_date = date('Y月m月d日', $res->publish_date);
$res->gametitle = explode('】', $res->title);
@ -78,7 +75,7 @@ class Prayer {
}
}
$res->user = userDetail(null, $this->cook);
$res->user = userDetail(null, (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''));
$res->comments['total'] = count($comments);
$res->comments['come'] = $comments;
$res->comments['total'] += (isset($res->ytcomment['total']) ? $res->ytcomment['total'] : 0);
@ -88,7 +85,7 @@ class Prayer {
DB::table('vid_video')->where('vid', $vid)->update(['view' => $res->view+1]);
return view('pages.site.video.prayer', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.video.prayer', ['res' => $res, 'user' => $this->user]);
}
function getKeroCome ($slug, $tslug) {
@ -210,7 +207,8 @@ class Prayer {
function backupYTComment ($slug, $com) {
foreach ($com['come'] as $c) {
$icon = substr($c->icon, 0, strpos($c->icon, "="));
$icon = str_replace('https://yt3.ggpht.com/ytc/', '', $icon).'.jpg';
$icon = str_replace('https://yt3.ggpht.com/', '', $icon).'.jpg';
$icon = str_replace('ytc/', '', $icon).'.jpg';
if ($icon != '.jpg') {
$isicon = array_diff(scandir(dirname(__DIR__, 4).'/storage/app/public/yt_icon'), array('..', '.'));
if (!in_array($icon, $isicon)) passthru('wget -O '.dirname(__DIR__, 4).'/storage/app/public/yt_icon/'.$icon.' '.$c->icon);
@ -220,7 +218,8 @@ class Prayer {
if (isset($c->replies)) {
foreach ($c->replies as $i => $r) {
$icon = substr($r['icon'], 0, strpos($r['icon'], "="));
$icon = str_replace('https://yt3.ggpht.com/ytc/', '', $icon).'.jpg';
$icon = str_replace('https://yt3.ggpht.com/', '', $icon).'.jpg';
$icon = str_replace('ytc/', '', $icon).'.jpg';
if ($icon != '.jpg') {
$isicon = array_diff(scandir(dirname(__DIR__, 4).'/storage/app/public/yt_icon'), array('..', '.'));
if (!in_array($icon, $isicon)) passthru('wget -O '.dirname(__DIR__, 4).'/storage/app/public/yt_icon/'.$icon.' '.$r['icon']);

ファイルの表示

@ -3,22 +3,21 @@
namespace App\Http\Controllers\Video;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Controllers\Engine;
// use Illuminate\Support\Facades\Log;
class VideoTable {
private $menu;
private $user;
class VideoTable extends Engine {
private $engine;
public function __construct ($m, $u) {
$this->menu = $m;
$this->user = $u;
public function __construct () {
$this->engine = new Engine;
}
public function index ($slug) {
$slg = DB::table('vid_game')->select('id', 'name')->where('slug', $slug)->first();
if (!$slg) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if (!$slg) return view('pages.site.notfound');
$res = DB::table('vid_video')->where('game_id', $slg->id)->orderBy('publish_date', 'desc')->get();
if (!$res) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
if (!$res) return view('pages.site.notfound');
foreach ($res as $r) {
$r->publish_date = date('Y月m月d日', $r->publish_date);
@ -30,18 +29,17 @@ class VideoTable {
if ($r->gametitle == '') $r->gametitle = '初代';
}
return view('pages.site.video.videotable', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.video.videotable', ['res' => $res]);
}
public function add (Request $r) {
if ($this->user && $this->user->perm['blg_addpost']) {
if ($this->engine->user && $this->engine->user->perm['blg_addpost']) {
$game = DB::table('vid_game')->get();
$err = '';
$res = '';
$frm = array('title' => '', 'vid' => '', 'game_id' => '', 'thumbnail' => '', 'url' => '', 'youtube' => '', 'nicovideo' => '', 'bitchute' => '', 'odysee' => '', 'kerotube' => '');
if (isset($r->submit)) {
if (empty($err)) { if ($r->url == '' && $r->youtube == '' && $r->nicovideo == '' && $r->bitchute == '' && $r->odysee == '' && $r->kerotube == '') $err = '以上の動画URLをご入力下さい。'; }
if (empty($this->engine->err)) { if ($r->url == '' && $r->youtube == '' && $r->nicovideo == '' && $r->bitchute == '' && $r->odysee == '' && $r->kerotube == '') $this->engine->err = '以上の動画URLをご入力下さい。'; }
// フォームの値を保存して
$frm['title'] = $r->title;
@ -59,39 +57,39 @@ class VideoTable {
// 件名、文章又はスラッグがなければ、エラーを出て
$verify = array('件名' => $r->title, 'スラッグ' => $r->vid);
$incomplete = array();
if (empty($err)) {
if (empty($this->engine->err)) {
foreach ($verify as $k => $v) { if (is_null($v) || empty($v) || !isset($v)) $incomplete[] = $k; }
if (count($incomplete) > 0) $err = implode('、', $incomplete).'をご入力下さい。';
if (count($incomplete) > 0) $this->engine->err = implode('、', $incomplete).'をご入力下さい。';
}
if (empty($err)) { if ($r->game_id == 0) $err = 'ゲームをご選択下さい。'; }
if (empty($this->engine->err)) { if ($r->game_id == 0) $this->engine->err = 'ゲームをご選択下さい。'; }
// スラッグが既に存在したら、エラーを出て
if (empty($err)) {
if (empty($this->engine->err)) {
$sl = DB::table('vid_video')->select('vid')->where('vid', $r->vid)->first();
if ($sl && $sl->vid == $r->vid) $err = 'このスラッグがもう存在しています。';
if ($sl && $sl->vid == $r->vid) $this->engine->err = 'このスラッグがもう存在しています。';
}
// エラーがあったら、フォームに戻って。なければ、データベースに保存したり、ページ又はポストへ移転して
if (!empty($err)) return view('pages.site.video.play.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm, 'game' => $game]);
if (!empty($this->engine->err)) return view('pages.site.video.play.add', ['res' => $res, 'err' => $this->engine->err, 'frm' => $frm, 'game' => $game]);
else {
// できたの?
if ($res = DB::table('vid_video')->insert($frm)) return redirect('/video/play/'.$r->vid);
else {
// やれやれ…
return view('pages.site.video.play.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm, 'game' => $game]);
return view('pages.site.video.play.add', ['res' => $res, 'err' => $this->engine->err, 'frm' => $frm, 'game' => $game]);
}
}
}
return view('pages.site.video.play.add', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm, 'game' => $game]);
return view('pages.site.video.play.add', ['res' => $res, 'err' => $this->engine->err, 'frm' => $frm, 'game' => $game]);
}
return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.notallowed');
}
public function delete (Request $r) {
if ($this->user->perm['blg_delpost']) {
if ($this->engine->user->perm['blg_delpost']) {
$get = DB::table('vid_video')->select('game_id')->where('vid', $r->slug)->first();
$red = DB::table('vid_game')->select('slug')->where('id', $get->game_id)->first();
DB::table('vid_video')->where('vid', $r->slug)->delete();
@ -102,15 +100,14 @@ class VideoTable {
}
public function edit (Request $r) {
if ($this->user && $this->user->perm['blg_addpost']) {
if ($this->engine->user && $this->engine->user->perm['blg_addpost']) {
$game = DB::table('vid_game')->get();
$frm = DB::table('vid_video')->where('vid', $r->vid)->first();
if (!$frm) return view('pages.site.notfound', ['menu' => $this->menu, 'user' => $this->user]);
$err = '';
if (!$frm) return view('pages.site.notfound');
$res = '';
if (isset($r->submit)) {
if (empty($err)) { if ($r->url == '' && $r->youtube == '' && $r->nicovideo == '' && $r->bitchute == '' && $r->odysee == '' && $r->kerotube) $err = '以上の動画URLをご入力下さい。'; }
if (empty($this->engine->err)) { if ($r->url == '' && $r->youtube == '' && $r->nicovideo == '' && $r->bitchute == '' && $r->odysee == '' && $r->kerotube) $this->engine->err = '以上の動画URLをご入力下さい。'; }
// フォームの値を保存して
$frm->title = $r->title;
@ -127,28 +124,28 @@ class VideoTable {
// 件名、文章又はスラッグがなければ、エラーを出て
$verify = array('件名' => $r->title, 'スラッグ' => $r->vid);
$incomplete = array();
if (empty($err)) {
if (empty($this->engine->err)) {
foreach ($verify as $k => $v) { if (is_null($v) || empty($v) || !isset($v)) $incomplete[] = $k; }
if (count($incomplete) > 0) $err = implode('、', $incomplete).'をご入力下さい。';
if (count($incomplete) > 0) $this->engine->err = implode('、', $incomplete).'をご入力下さい。';
}
if (empty($err)) { if ($r->game_id == 0) $err = 'ゲームをご選択下さい。'; }
if (empty($this->engine->err)) { if ($r->game_id == 0) $this->engine->err = 'ゲームをご選択下さい。'; }
// エラーがあったら、フォームに戻って。なければ、データベースに保存したり、ページ又はポストへ移転して
if (!empty($err)) return view('pages.site.video.play.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm, 'game' => $game]);
if (!empty($this->engine->err)) return view('pages.site.video.play.edit', ['res' => $res, 'err' => $this->engine->err, 'frm' => $frm, 'game' => $game]);
else {
// できたの?
if ($res = DB::table('vid_video')->where('vid', $r->vid)->update((array)$frm)) return redirect('/video/play/'.$r->vid);
else {
// やれやれ…
return view('pages.site.video.play.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm, 'game' => $game]);
return view('pages.site.video.play.edit', ['res' => $res, 'err' => $this->engine->err, 'frm' => $frm, 'game' => $game]);
}
}
}
return view('pages.site.video.play.edit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'frm' => $frm, 'game' => $game]);
return view('pages.site.video.play.edit', ['res' => $res, 'err' => $this->engine->err, 'frm' => $frm, 'game' => $game]);
}
return view('pages.site.notallowed', ['menu' => $this->menu, 'user' => $this->user]);
return view('pages.site.notallowed');
}
}

ファイルの表示

@ -1,75 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
// use Illuminate\Support\Facades\Log;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\Video\Game;
use App\Http\Controllers\Video\VideoTable;
use App\Http\Controllers\Video\Prayer;
class VideoController extends Controller {
private $objUser;
private $menu;
private $cook;
private $id;
private $user;
public function __construct() {
if (isset($_COOKIE['language'])) app()->setLocale($_COOKIE['language']);
$this->objUser = new UserController();
$this->menu = getPagesInMenu();
$this->cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : '');
$this->id = checkLegit($this->cook);
$this->user = $this->objUser->getLoggedUser($this->id, $this->cook);
}
public function index () {
$r = new Game($this->menu, $this->user);
return $r->index();
}
public function table ($slug) {
$r = new VideoTable($this->menu, $this->user);
return $r->index($slug);
}
public function prayer ($vid) {
$r = new Prayer($this->menu, $this->cook, $this->user);
return $r->index($vid);
}
public function addGame (Request $rr) {
$r = new Game($this->menu, $this->user);
return $r->add($rr);
}
public function delGame (Request $rr) {
$r = new Game($this->menu, $this->user);
return $r->delete($rr);
}
public function editGame (Request $rr) {
$r = new Game($this->menu, $this->user);
return $r->edit($rr);
}
public function addVideo (Request $rr) {
$r = new VideoTable($this->menu, $this->user);
return $r->add($rr);
}
public function delVideo (Request $rr) {
$r = new VideoTable($this->menu, $this->user);
return $r->delete($rr);
}
public function editVideo (Request $rr) {
$r = new VideoTable($this->menu, $this->user);
return $r->edit($rr);
}
}

ファイルの表示

@ -1,39 +0,0 @@
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}

ファイルの表示

@ -16,6 +16,25 @@ function getPagesInMenu () {
return $res;
}
function getCss () {
$engine = new \App\Http\Controllers\Engine;
return $engine->css;
}
function getPerms () {
$engine = new \App\Http\Controllers\Engine;
return $engine->getPermissions((isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''));
}
function getUser () {
$engine = new \App\Http\Controllers\Engine;
return $engine->user;
}
function getGroupColours () {
return DB::table('usr_perm_module')->select('id', 'colour_m', 'colour_f', 'colour_u')->get()->toArray();
}
function getIp () {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) $ip = $_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
@ -63,4 +82,32 @@ function userDetail ($id, $kero=null) {
return new \stdClass();
}
function getCountries () {
$flags = DB::table('nhn_country')->orderBy('id', 'asc')->get();
$res = array();
foreach ($flags as $flag) {
$protocol = isset($_SERVER["HTTPS"]) ? 'https' : 'http';
$res[] = array(
'value' => $flag->nameEng,
'label' => $flag->name
);
}
return $res;
}
function makeToken () {
$c = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$!%&()';
$clen = strlen($c);
$token = '';
for ($i = 0; $i < 128; $i++) {
$token .= $c[rand(0, $clen - 1)];
}
return $token;
}
?>

19
public/css/app.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,19 @@
#app {
font-family: monospace;
font-size: large;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: left;
margin-top: 48px;
margin-left: 0px;
}
body {
font-family: 'jpserriffont';
text-align: center;
color: #fcfcfc;
background-color: #232629;
}
a { color: #b16cce; }
a:hover { color: #cb81ea; }

2
public/css/app_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,2 @@
a { color: #f31de8; }
a:hover { color: #e93de9; }

2
public/css/app_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,2 @@
a { color: #1d99f3; }
a:hover { color: #3daee9; }

3
public/css/badge.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,3 @@
.badge-danger { color: #fff; background-color: #dc3545; }
.badge-light { color: #212529; background-color: #f8f9fa; }
.badge { font-size: 100%; }

0
public/css/badge_f.css vendored ノーマルファイル
ファイルの表示

0
public/css/badge_m.css vendored ノーマルファイル
ファイルの表示

7
public/css/bootstrap.css vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

165
public/css/button.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,165 @@
.btn, btn:hover {
margin: 0 2px;
border: 2px solid;
}
.btn {
border-left-color: #fcfcfc;
border-top-color: #fcfcfc;
}
.btn:hover {
border-left-color: #7f8c8d;
border-top-color: #7f8c8d;
}
.btn-fumei, .btn-fumei.disabled, .btn-fumei:disabled {
background: radial-gradient(ellipse at top, #61237c, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
color: #fcfcfc;
background-color: #9b59b6;
border-bottom-color: #cb81ea;
border-right-color: #cb81ea;
}
.btn-fumei:hover {
color: #fcfcfc;
background-color: #61237c;
border-color: transparent;
border-bottom-color: #9b59b6;
border-right-color: #9b59b6;
}
.btn-fumei-check {
color: #fcfcfc;
background-color: #61237c;
border-color: transparent;
border-bottom-color: #9b59b6;
border-right-color: #9b59b6;
box-shadow: 0px 0px 7px 3px #9b59b6;
}
.btn-danshi, .btn-danshi.disabled, .btn-danshi:disabled {
background: radial-gradient(ellipse at top, #3daee9, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
color: #fcfcfc;
background-color: #fcfcfc;
border-bottom-color: #9ed6ff;
border-right-color: #9ed6ff;
}
.btn-danshi:hover {
color: #fcfcfc;
background-color: #205e7d;
border-color: transparent;
border-bottom-color: #1d99f3;
border-right-color: #1d99f3;
}
.btn-danshi-check {
color: #fcfcfc;
background-color: #205e7d;
border-color: transparent;
border-bottom-color: #1d99f3;
border-right-color: #1d99f3;
box-shadow: 0px 0px 7px 3px #1d99f3;
}
.btn-joshi, .btn-joshi.disabled, .btn-joshi:disabled {
background: radial-gradient(ellipse at top, #e93de9, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
color: #fcfcfc;
background-color: #fcfcfc;
border-bottom-color: #ffe6f9;
border-right-color: #ffe6f9;
}
.btn-joshi:hover {
color: #fcfcfc;
background-color: #7d2069;
border-color: transparent;
border-bottom-color: #f31de8;
border-right-color: #f31de8;
}
.btn-joshi-check {
color: #fcfcfc;
background-color: #7d2069;
border-color: transparent;
border-bottom-color: #f31de8;
border-right-color: #f31de8;
box-shadow: 0px 0px 7px 3px #f31de8;
}
.btn-primary, .btn-primary.disabled, .btn-primary:disabled {
background: radial-gradient(ellipse at top, #cb81ea, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
color: #fcfcfc;
border-bottom-color: #f1d0ff;
border-right-color: #f1d0ff;
}
.btn-primary:hover {
color: #fcfcfc;
background-color: #46195a;
border-color: transparent;
border-bottom-color: #b16cce;
border-right-color: #b16cce;
}
.btn-secondary, .btn-secondary.disabled, .btn-secondary:disabled {
background: radial-gradient(ellipse at top, #7f8c8d, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
color: #fcfcfc;
border-bottom-color: #d6dfe4;
border-right-color: #d6dfe4;
}
.btn-secondary:hover {
color: #fcfcfc;
background-color: #495051;
border-color: transparent;
border-bottom-color: #bdc3c7;
border-right-color: #bdc3c7;
}
.btn-success, .btn-success.disabled, .btn-success:disabled, .alert-success {
background: radial-gradient(ellipse at top, #2ecc71, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
color: #fcfcfc;
border-bottom-color: #20ec77;
border-right-color: #20ec77;
}
.btn-success:hover {
color: #fcfcfc;
background-color: #145d33;
border-color: transparent;
border-bottom-color: #27ae60;
border-right-color: #27ae60;
}
.btn-danger, .btn-danger.disabled, .btn-danger:disabled, .alert-danger {
background: radial-gradient(ellipse at top, #e74c3c, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
color: #fcfcfc;
border-bottom-color: #f58276;
border-right-color: #f58276;
}
.btn-danger:hover {
color: #fcfcfc;
background-color: #611e24;
border-color: transparent;
border-bottom-color: #e74c3c;
border-right-color: #e74c3c;
}
.btn-warning, .btn-warning.disabled, .btn-warning:disabled, .alert-warning {
background: radial-gradient(ellipse at top, #fdbc4b, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
color: #fcfcfc;
border-bottom-color: #c9ce3b;
border-right-color: #c9ce3b;
}
.btn-warning:hover {
color: #fcfcfc;
background-color: #f67400;
border-color: transparent;
border-bottom-color: #fdbc4b;
border-right-color: #fdbc4b;
}

11
public/css/button_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,11 @@
.btn-primary, .btn-primary.disabled, .btn-primary:disabled {
background: radial-gradient(ellipse at top, #e93de9, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
border-bottom-color: #ffe6f9;
border-right-color: #ffe6f9;
}
.btn-primary:hover {
background-color: #7d2069;
border-bottom-color: #f31de8;
border-right-color: #f31de8;
}

11
public/css/button_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,11 @@
.btn-primary, .btn-primary.disabled, .btn-primary:disabled {
background: radial-gradient(ellipse at top, #3daee9, transparent), radial-gradient(ellipse at bottom, #232629, transparent);
border-bottom-color: #9ed6ff;
border-right-color: #9ed6ff;
}
.btn-primary:hover {
background-color: #205e7d;
border-bottom-color: #1d99f3;
border-right-color: #1d99f3;
}

ファイルの表示

@ -1,8 +1,4 @@
.custom-control-input:checked ~ .custom-control-label::before,
.custom-radio .custom-control-input:checked ~ .custom-control-label::before,
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before
{
color: $white1;
background-color: $suwa03;
border-color: $suwa04;
}
{ color: #fcfcfc; background-color: #cb81ea; border-color: #b16cce; }

4
public/css/check_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,4 @@
.custom-control-input:checked ~ .custom-control-label::before,
.custom-radio .custom-control-input:checked ~ .custom-control-label::before,
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before
{ background-color: #e93de9; border-color: #f31de8; }

4
public/css/check_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,4 @@
.custom-control-input:checked ~ .custom-control-label::before,
.custom-radio .custom-control-input:checked ~ .custom-control-label::before,
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before
{ background-color: #3daee9; border-color: #1d99f3; }

5
public/css/comments.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,5 @@
.fn { font-size: 16px; font-style: normal; color: #20ec77; }
.comment-meta a { color: #bdc3c7; }
.commentlist p { margin: 0 0 10px; padding: 10px 0 40px 0; font-size: 20px; }
.commentnumber { float: left; margin-right: 5px; font-size: 16px; }
ul { list-style: none; }

0
public/css/comments_f.css vendored ノーマルファイル
ファイルの表示

0
public/css/comments_m.css vendored ノーマルファイル
ファイルの表示

42
public/css/contents.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,42 @@
.bar { background: linear-gradient(to bottom, #57229c 0%, #6b4386 34%, #2d1a46 100%); }
.bara { background: linear-gradient(180deg, #a05ebd 0, #e4b4f8 34%, #51047d 100%); }
.bar, .bara, .barm {
text-align: center;
color: #fcfcfc;
padding: 5px;
font-size: 20px;
border-bottom: solid 2px #cb81ea;
cursor: pointer;
transition: background 0.3s, color 0.3s;
}
.barm { background: linear-gradient(180deg, #313639 0, #4d4d4d 34%, #232629 100%); border-bottom: solid 2px #fcfcfc; font-size: 24px; cursor: default; font-weight: bolder; }
.bar > a { color: #fcfcfc; }
.bar > a:hover { text-decoration: none; }
.bar:hover { color: #fcfcfc; background: linear-gradient(to bottom, #6c29b9 0%, #916ead 34%, #5d2b8b 100%); }
.indexborder { border: 2px solid #cb81ea; box-shadow: 0px 0px 7px 3px #b16cce; padding: 8px; background-color: #232629; }
.meta { padding: 5px; text-align: left; background-color: #341242; border-bottom: solid 2px #cb81ea; }
.comment { border-top: solid 2px #cb81ea; }
.back, .comment { padding: 4px; background-color: #31363b; text-align: left; }
.commentloop { padding: 10px 4px 40px 4px; }
.commentloop > .name { color: #11d116; }
.within { margin: 0 auto; border: 2px solid #cb81ea; box-shadow: 0px 0px 7px 3px #b16cce; }
.wny { border: solid 2px #ed1515; box-shadow: 0px 0px 20px 10px #ff3636; }
.bny, .cny { background-color: #da4453; border-bottom: solid 2px #ed1515; }
.mny { background-color: #c0392b; border-bottom: solid 2px #ed1515; }
.kero-section {
width: 100%;
font-size: 150%;
font-weight: bolder;
text-align: center;
padding: 4px;
margin: 8px 0;
background: linear-gradient(to bottom, #cb81ea 0%, #57229c 34%, #d898f3 100%);
color: #fcfcfc;
border-bottom-color: #f1d0ff;
border-right-color: #f1d0ff;
border-bottom-color: #f1d0ff;
border-right-color: #f1d0ff;
border-width: 1px;
border-radius: 25px;
cursor: default;
}

9
public/css/contents_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,9 @@
.bar { background: linear-gradient(to bottom, #9c2296 0%, #864386 34%, #421a46 100%); }
.bara { background: linear-gradient(180deg, #ea00ff 0, #e599e5 34%, #7d0469 100%); }
.bar, .bara { border-bottom: solid 2px #e93de9; }
.bar:hover { background: linear-gradient(to bottom, #b929ad 0%, #ad6ea8 34%, #832b8b 100%); }
.indexborder { border: 2px solid #e93de9; box-shadow: 0px 0px 7px 3px #f31de8; }
.meta { background-color: #502c50; border-bottom: solid 2px #e93de9; }
.comment { border-top: solid 2px #e93de9; }
.within { border: 2px solid #e93de9; box-shadow: 0px 0px 7px 3px #f31de8; }
.kero-section { background: linear-gradient(to bottom, #e93de9 0%, #9c2296 34%, #ea81e8 100%); border-bottom-color: #ffe6f9; border-right-color: #ffe6f9; border-bottom-color: #ffe6f9; border-right-color: #ffe6f9; }

9
public/css/contents_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,9 @@
.bar { background: linear-gradient(to bottom, #22699c 0%, #436a86 34%, #1a3746 100%); }
.bara { background: linear-gradient(180deg, #0094ff 0, #8bb6d6 34%, #04547d 100%); }
.bar, .bara { border-bottom: solid 2px #3daee9; }
.bar:hover { background: linear-gradient(to bottom, #2980b9 0%, #6e93ad 34%, #2b6b8b 100%); }
.indexborder { border: 2px solid #3daee9; box-shadow: 0px 0px 7px 3px #1d99f3; }
.meta { background-color: #2c3e50; border-bottom: solid 2px #3daee9; }
.comment { border-top: solid 2px #3daee9; }
.within { border: 2px solid #3daee9; box-shadow: 0px 0px 7px 3px #1d99f3; }
.kero-section { background: linear-gradient(to bottom, #3daee9 0%, #22699c 34%, #6ec0fb 100%); border-bottom-color: #9ed6ff; border-right-color: #9ed6ff; border-bottom-color: #9ed6ff; border-right-color: #9ed6ff; }

4
public/css/form.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,4 @@
.form-control, .form-control:focus { background-color: #232629; color: #fcfcfc; }
.form-control { border: 1px solid #220a2c; }
.form-control:focus { border: 1px solid #cb81ea; }
.form-control:disabled, .form-control[readonly] { background-color: #232629; }

2
public/css/form_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,2 @@
.form-control { border: 1px solid #5e345c; }
.form-control:focus { border: 1px solid #e93de9; }

2
public/css/form_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,2 @@
.form-control { border: 1px solid #34495e; }
.form-control:focus { border: 1px solid #3daee9; }

9
public/css/jpserriffont.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,9 @@
@font-face {
font-family: "jpserriffont";
font-style: normal;
font-weight: 400;
src: url(/fonts/jpserriffont.woff?7c80edebf55afde76b91a29eb69e6e21);
font-display: swap;
}
body { font-family: jpserriffont; }

0
public/css/jpserriffont_f.css vendored ノーマルファイル
ファイルの表示

0
public/css/jpserriffont_m.css vendored ノーマルファイル
ファイルの表示

41
public/css/logo.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,41 @@
.logo-img { border: 2px solid #cb81ea; box-shadow: 0 0 7px 3px #b16cce; }
.logo-sns { transition: background 0.3s, color 0.3s; background-color: #31363b; border: 1px solid #eff0f1; padding: 8px; margin: 4px 10px; }
.logo-sns:hover { background-color: #eff0f1; border: 1px solid #31363b; }
.logo-play { transition: background 0.3s, color 0.3s; background-color: transparent; border-radius: 25%; padding: 2px; }
.logo-play:hover { background-color: #ff3636; }
.logo-br { padding: 8px; }
@-webkit-keyframes sitenamehover {
0% { text-shadow: -4px -4px 0 #b16cce, -4px -3px 0 #b16cce, -4px -2px 0 #b16cce, -4px -1px 0 #b16cce, -4px 0px 0 #b16cce, -4px 1px 0 #b16cce, -4px 2px 0 #b16cce, -4px 3px 0 #b16cce, -4px 4px 0 #b16cce, -3px -4px 0 #b16cce, -3px -3px 0 #b16cce, -3px -2px 0 #b16cce, -3px -1px 0 #b16cce, -3px 0px 0 #b16cce, -3px 1px 0 #b16cce, -3px 2px 0 #b16cce, -3px 3px 0 #b16cce, -3px 4px 0 #b16cce, -2px -4px 0 #b16cce, -2px -3px 0 #b16cce, -2px -2px 0 #b16cce, -2px -1px 0 #b16cce, -2px 0px 0 #b16cce, -2px 1px 0 #b16cce, -2px 2px 0 #b16cce, -2px 3px 0 #b16cce, -2px 4px 0 #b16cce, -1px -4px 0 #b16cce, -1px -3px 0 #b16cce, -1px -2px 0 #b16cce, -1px -1px 0 #b16cce, -1px 0px 0 #b16cce, -1px 1px 0 #b16cce, -1px 2px 0 #b16cce, -1px 3px 0 #b16cce, -1px 4px 0 #b16cce, 0px -4px 0 #b16cce, 0px -3px 0 #b16cce, 0px -2px 0 #b16cce, 0px -1px 0 #b16cce, 0px 0px 0 #b16cce, 0px 1px 0 #b16cce, 0px 2px 0 #b16cce, 0px 3px 0 #b16cce, 0px 4px 0 #b16cce, 1px -4px 0 #b16cce, 1px -3px 0 #b16cce, 1px -2px 0 #b16cce, 1px -1px 0 #b16cce, 1px 0px 0 #b16cce, 1px 1px 0 #b16cce, 1px 2px 0 #b16cce, 1px 3px 0 #b16cce, 1px 4px 0 #b16cce, 2px -4px 0 #b16cce, 2px -3px 0 #b16cce, 2px -2px 0 #b16cce, 2px -1px 0 #b16cce, 2px 0px 0 #b16cce, 2px 1px 0 #b16cce, 2px 2px 0 #b16cce, 2px 3px 0 #b16cce, 2px 4px 0 #b16cce, 3px -4px 0 #b16cce, 3px -3px 0 #b16cce, 3px -2px 0 #b16cce, 3px -1px 0 #b16cce, 3px 0px 0 #b16cce, 3px 1px 0 #b16cce, 3px 2px 0 #b16cce, 3px 3px 0 #b16cce, 3px 4px 0 #b16cce, 4px -4px 0 #b16cce, 4px -3px 0 #b16cce, 4px -2px 0 #b16cce, 4px -1px 0 #b16cce, 4px 0px 0 #b16cce, 4px 1px 0 #b16cce, 4px 2px 0 #b16cce, 4px 3px 0 #b16cce, 4px 4px 0 #b16cce; }
25% { text-shadow: -4px -4px 0 #cb81ea, -4px -3px 0 #cb81ea, -4px -2px 0 #cb81ea, -4px -1px 0 #cb81ea, -4px 0px 0 #cb81ea, -4px 1px 0 #cb81ea, -4px 2px 0 #cb81ea, -4px 3px 0 #cb81ea, -4px 4px 0 #cb81ea, -3px -4px 0 #cb81ea, -3px -3px 0 #cb81ea, -3px -2px 0 #cb81ea, -3px -1px 0 #cb81ea, -3px 0px 0 #cb81ea, -3px 1px 0 #cb81ea, -3px 2px 0 #cb81ea, -3px 3px 0 #cb81ea, -3px 4px 0 #cb81ea, -2px -4px 0 #cb81ea, -2px -3px 0 #cb81ea, -2px -2px 0 #cb81ea, -2px -1px 0 #cb81ea, -2px 0px 0 #cb81ea, -2px 1px 0 #cb81ea, -2px 2px 0 #cb81ea, -2px 3px 0 #cb81ea, -2px 4px 0 #cb81ea, -1px -4px 0 #cb81ea, -1px -3px 0 #cb81ea, -1px -2px 0 #cb81ea, -1px -1px 0 #cb81ea, -1px 0px 0 #cb81ea, -1px 1px 0 #cb81ea, -1px 2px 0 #cb81ea, -1px 3px 0 #cb81ea, -1px 4px 0 #cb81ea, 0px -4px 0 #cb81ea, 0px -3px 0 #cb81ea, 0px -2px 0 #cb81ea, 0px -1px 0 #cb81ea, 0px 0px 0 #cb81ea, 0px 1px 0 #cb81ea, 0px 2px 0 #cb81ea, 0px 3px 0 #cb81ea, 0px 4px 0 #cb81ea, 1px -4px 0 #cb81ea, 1px -3px 0 #cb81ea, 1px -2px 0 #cb81ea, 1px -1px 0 #cb81ea, 1px 0px 0 #cb81ea, 1px 1px 0 #cb81ea, 1px 2px 0 #cb81ea, 1px 3px 0 #cb81ea, 1px 4px 0 #cb81ea, 2px -4px 0 #cb81ea, 2px -3px 0 #cb81ea, 2px -2px 0 #cb81ea, 2px -1px 0 #cb81ea, 2px 0px 0 #cb81ea, 2px 1px 0 #cb81ea, 2px 2px 0 #cb81ea, 2px 3px 0 #cb81ea, 2px 4px 0 #cb81ea, 3px -4px 0 #cb81ea, 3px -3px 0 #cb81ea, 3px -2px 0 #cb81ea, 3px -1px 0 #cb81ea, 3px 0px 0 #cb81ea, 3px 1px 0 #cb81ea, 3px 2px 0 #cb81ea, 3px 3px 0 #cb81ea, 3px 4px 0 #cb81ea, 4px -4px 0 #cb81ea, 4px -3px 0 #cb81ea, 4px -2px 0 #cb81ea, 4px -1px 0 #cb81ea, 4px 0px 0 #cb81ea, 4px 1px 0 #cb81ea, 4px 2px 0 #cb81ea, 4px 3px 0 #cb81ea, 4px 4px 0 #cb81ea; }
50% { text-shadow: -4px -4px 0 #f1d0ff, -4px -3px 0 #f1d0ff, -4px -2px 0 #f1d0ff, -4px -1px 0 #f1d0ff, -4px 0px 0 #f1d0ff, -4px 1px 0 #f1d0ff, -4px 2px 0 #f1d0ff, -4px 3px 0 #f1d0ff, -4px 4px 0 #f1d0ff, -3px -4px 0 #f1d0ff, -3px -3px 0 #f1d0ff, -3px -2px 0 #f1d0ff, -3px -1px 0 #f1d0ff, -3px 0px 0 #f1d0ff, -3px 1px 0 #f1d0ff, -3px 2px 0 #f1d0ff, -3px 3px 0 #f1d0ff, -3px 4px 0 #f1d0ff, -2px -4px 0 #f1d0ff, -2px -3px 0 #f1d0ff, -2px -2px 0 #f1d0ff, -2px -1px 0 #f1d0ff, -2px 0px 0 #f1d0ff, -2px 1px 0 #f1d0ff, -2px 2px 0 #f1d0ff, -2px 3px 0 #f1d0ff, -2px 4px 0 #f1d0ff, -1px -4px 0 #f1d0ff, -1px -3px 0 #f1d0ff, -1px -2px 0 #f1d0ff, -1px -1px 0 #f1d0ff, -1px 0px 0 #f1d0ff, -1px 1px 0 #f1d0ff, -1px 2px 0 #f1d0ff, -1px 3px 0 #f1d0ff, -1px 4px 0 #f1d0ff, 0px -4px 0 #f1d0ff, 0px -3px 0 #f1d0ff, 0px -2px 0 #f1d0ff, 0px -1px 0 #f1d0ff, 0px 0px 0 #f1d0ff, 0px 1px 0 #f1d0ff, 0px 2px 0 #f1d0ff, 0px 3px 0 #f1d0ff, 0px 4px 0 #f1d0ff, 1px -4px 0 #f1d0ff, 1px -3px 0 #f1d0ff, 1px -2px 0 #f1d0ff, 1px -1px 0 #f1d0ff, 1px 0px 0 #f1d0ff, 1px 1px 0 #f1d0ff, 1px 2px 0 #f1d0ff, 1px 3px 0 #f1d0ff, 1px 4px 0 #f1d0ff, 2px -4px 0 #f1d0ff, 2px -3px 0 #f1d0ff, 2px -2px 0 #f1d0ff, 2px -1px 0 #f1d0ff, 2px 0px 0 #f1d0ff, 2px 1px 0 #f1d0ff, 2px 2px 0 #f1d0ff, 2px 3px 0 #f1d0ff, 2px 4px 0 #f1d0ff, 3px -4px 0 #f1d0ff, 3px -3px 0 #f1d0ff, 3px -2px 0 #f1d0ff, 3px -1px 0 #f1d0ff, 3px 0px 0 #f1d0ff, 3px 1px 0 #f1d0ff, 3px 2px 0 #f1d0ff, 3px 3px 0 #f1d0ff, 3px 4px 0 #f1d0ff, 4px -4px 0 #f1d0ff, 4px -3px 0 #f1d0ff, 4px -2px 0 #f1d0ff, 4px -1px 0 #f1d0ff, 4px 0px 0 #f1d0ff, 4px 1px 0 #f1d0ff, 4px 2px 0 #f1d0ff, 4px 3px 0 #f1d0ff, 4px 4px 0 #f1d0ff; }
75% { text-shadow: -4px -4px 0 #cb81ea, -4px -3px 0 #cb81ea, -4px -2px 0 #cb81ea, -4px -1px 0 #cb81ea, -4px 0px 0 #cb81ea, -4px 1px 0 #cb81ea, -4px 2px 0 #cb81ea, -4px 3px 0 #cb81ea, -4px 4px 0 #cb81ea, -3px -4px 0 #cb81ea, -3px -3px 0 #cb81ea, -3px -2px 0 #cb81ea, -3px -1px 0 #cb81ea, -3px 0px 0 #cb81ea, -3px 1px 0 #cb81ea, -3px 2px 0 #cb81ea, -3px 3px 0 #cb81ea, -3px 4px 0 #cb81ea, -2px -4px 0 #cb81ea, -2px -3px 0 #cb81ea, -2px -2px 0 #cb81ea, -2px -1px 0 #cb81ea, -2px 0px 0 #cb81ea, -2px 1px 0 #cb81ea, -2px 2px 0 #cb81ea, -2px 3px 0 #cb81ea, -2px 4px 0 #cb81ea, -1px -4px 0 #cb81ea, -1px -3px 0 #cb81ea, -1px -2px 0 #cb81ea, -1px -1px 0 #cb81ea, -1px 0px 0 #cb81ea, -1px 1px 0 #cb81ea, -1px 2px 0 #cb81ea, -1px 3px 0 #cb81ea, -1px 4px 0 #cb81ea, 0px -4px 0 #cb81ea, 0px -3px 0 #cb81ea, 0px -2px 0 #cb81ea, 0px -1px 0 #cb81ea, 0px 0px 0 #cb81ea, 0px 1px 0 #cb81ea, 0px 2px 0 #cb81ea, 0px 3px 0 #cb81ea, 0px 4px 0 #cb81ea, 1px -4px 0 #cb81ea, 1px -3px 0 #cb81ea, 1px -2px 0 #cb81ea, 1px -1px 0 #cb81ea, 1px 0px 0 #cb81ea, 1px 1px 0 #cb81ea, 1px 2px 0 #cb81ea, 1px 3px 0 #cb81ea, 1px 4px 0 #cb81ea, 2px -4px 0 #cb81ea, 2px -3px 0 #cb81ea, 2px -2px 0 #cb81ea, 2px -1px 0 #cb81ea, 2px 0px 0 #cb81ea, 2px 1px 0 #cb81ea, 2px 2px 0 #cb81ea, 2px 3px 0 #cb81ea, 2px 4px 0 #cb81ea, 3px -4px 0 #cb81ea, 3px -3px 0 #cb81ea, 3px -2px 0 #cb81ea, 3px -1px 0 #cb81ea, 3px 0px 0 #cb81ea, 3px 1px 0 #cb81ea, 3px 2px 0 #cb81ea, 3px 3px 0 #cb81ea, 3px 4px 0 #cb81ea, 4px -4px 0 #cb81ea, 4px -3px 0 #cb81ea, 4px -2px 0 #cb81ea, 4px -1px 0 #cb81ea, 4px 0px 0 #cb81ea, 4px 1px 0 #cb81ea, 4px 2px 0 #cb81ea, 4px 3px 0 #cb81ea, 4px 4px 0 #cb81ea; }
100% { text-shadow: -4px -4px 0 #b16cce, -4px -3px 0 #b16cce, -4px -2px 0 #b16cce, -4px -1px 0 #b16cce, -4px 0px 0 #b16cce, -4px 1px 0 #b16cce, -4px 2px 0 #b16cce, -4px 3px 0 #b16cce, -4px 4px 0 #b16cce, -3px -4px 0 #b16cce, -3px -3px 0 #b16cce, -3px -2px 0 #b16cce, -3px -1px 0 #b16cce, -3px 0px 0 #b16cce, -3px 1px 0 #b16cce, -3px 2px 0 #b16cce, -3px 3px 0 #b16cce, -3px 4px 0 #b16cce, -2px -4px 0 #b16cce, -2px -3px 0 #b16cce, -2px -2px 0 #b16cce, -2px -1px 0 #b16cce, -2px 0px 0 #b16cce, -2px 1px 0 #b16cce, -2px 2px 0 #b16cce, -2px 3px 0 #b16cce, -2px 4px 0 #b16cce, -1px -4px 0 #b16cce, -1px -3px 0 #b16cce, -1px -2px 0 #b16cce, -1px -1px 0 #b16cce, -1px 0px 0 #b16cce, -1px 1px 0 #b16cce, -1px 2px 0 #b16cce, -1px 3px 0 #b16cce, -1px 4px 0 #b16cce, 0px -4px 0 #b16cce, 0px -3px 0 #b16cce, 0px -2px 0 #b16cce, 0px -1px 0 #b16cce, 0px 0px 0 #b16cce, 0px 1px 0 #b16cce, 0px 2px 0 #b16cce, 0px 3px 0 #b16cce, 0px 4px 0 #b16cce, 1px -4px 0 #b16cce, 1px -3px 0 #b16cce, 1px -2px 0 #b16cce, 1px -1px 0 #b16cce, 1px 0px 0 #b16cce, 1px 1px 0 #b16cce, 1px 2px 0 #b16cce, 1px 3px 0 #b16cce, 1px 4px 0 #b16cce, 2px -4px 0 #b16cce, 2px -3px 0 #b16cce, 2px -2px 0 #b16cce, 2px -1px 0 #b16cce, 2px 0px 0 #b16cce, 2px 1px 0 #b16cce, 2px 2px 0 #b16cce, 2px 3px 0 #b16cce, 2px 4px 0 #b16cce, 3px -4px 0 #b16cce, 3px -3px 0 #b16cce, 3px -2px 0 #b16cce, 3px -1px 0 #b16cce, 3px 0px 0 #b16cce, 3px 1px 0 #b16cce, 3px 2px 0 #b16cce, 3px 3px 0 #b16cce, 3px 4px 0 #b16cce, 4px -4px 0 #b16cce, 4px -3px 0 #b16cce, 4px -2px 0 #b16cce, 4px -1px 0 #b16cce, 4px 0px 0 #b16cce, 4px 1px 0 #b16cce, 4px 2px 0 #b16cce, 4px 3px 0 #b16cce, 4px 4px 0 #b16cce; }
}
@keyframes sitenamehover {
0% { text-shadow: -4px -4px 0 #b16cce, -4px -3px 0 #b16cce, -4px -2px 0 #b16cce, -4px -1px 0 #b16cce, -4px 0px 0 #b16cce, -4px 1px 0 #b16cce, -4px 2px 0 #b16cce, -4px 3px 0 #b16cce, -4px 4px 0 #b16cce, -3px -4px 0 #b16cce, -3px -3px 0 #b16cce, -3px -2px 0 #b16cce, -3px -1px 0 #b16cce, -3px 0px 0 #b16cce, -3px 1px 0 #b16cce, -3px 2px 0 #b16cce, -3px 3px 0 #b16cce, -3px 4px 0 #b16cce, -2px -4px 0 #b16cce, -2px -3px 0 #b16cce, -2px -2px 0 #b16cce, -2px -1px 0 #b16cce, -2px 0px 0 #b16cce, -2px 1px 0 #b16cce, -2px 2px 0 #b16cce, -2px 3px 0 #b16cce, -2px 4px 0 #b16cce, -1px -4px 0 #b16cce, -1px -3px 0 #b16cce, -1px -2px 0 #b16cce, -1px -1px 0 #b16cce, -1px 0px 0 #b16cce, -1px 1px 0 #b16cce, -1px 2px 0 #b16cce, -1px 3px 0 #b16cce, -1px 4px 0 #b16cce, 0px -4px 0 #b16cce, 0px -3px 0 #b16cce, 0px -2px 0 #b16cce, 0px -1px 0 #b16cce, 0px 0px 0 #b16cce, 0px 1px 0 #b16cce, 0px 2px 0 #b16cce, 0px 3px 0 #b16cce, 0px 4px 0 #b16cce, 1px -4px 0 #b16cce, 1px -3px 0 #b16cce, 1px -2px 0 #b16cce, 1px -1px 0 #b16cce, 1px 0px 0 #b16cce, 1px 1px 0 #b16cce, 1px 2px 0 #b16cce, 1px 3px 0 #b16cce, 1px 4px 0 #b16cce, 2px -4px 0 #b16cce, 2px -3px 0 #b16cce, 2px -2px 0 #b16cce, 2px -1px 0 #b16cce, 2px 0px 0 #b16cce, 2px 1px 0 #b16cce, 2px 2px 0 #b16cce, 2px 3px 0 #b16cce, 2px 4px 0 #b16cce, 3px -4px 0 #b16cce, 3px -3px 0 #b16cce, 3px -2px 0 #b16cce, 3px -1px 0 #b16cce, 3px 0px 0 #b16cce, 3px 1px 0 #b16cce, 3px 2px 0 #b16cce, 3px 3px 0 #b16cce, 3px 4px 0 #b16cce, 4px -4px 0 #b16cce, 4px -3px 0 #b16cce, 4px -2px 0 #b16cce, 4px -1px 0 #b16cce, 4px 0px 0 #b16cce, 4px 1px 0 #b16cce, 4px 2px 0 #b16cce, 4px 3px 0 #b16cce, 4px 4px 0 #b16cce; }
25% { text-shadow: -4px -4px 0 #cb81ea, -4px -3px 0 #cb81ea, -4px -2px 0 #cb81ea, -4px -1px 0 #cb81ea, -4px 0px 0 #cb81ea, -4px 1px 0 #cb81ea, -4px 2px 0 #cb81ea, -4px 3px 0 #cb81ea, -4px 4px 0 #cb81ea, -3px -4px 0 #cb81ea, -3px -3px 0 #cb81ea, -3px -2px 0 #cb81ea, -3px -1px 0 #cb81ea, -3px 0px 0 #cb81ea, -3px 1px 0 #cb81ea, -3px 2px 0 #cb81ea, -3px 3px 0 #cb81ea, -3px 4px 0 #cb81ea, -2px -4px 0 #cb81ea, -2px -3px 0 #cb81ea, -2px -2px 0 #cb81ea, -2px -1px 0 #cb81ea, -2px 0px 0 #cb81ea, -2px 1px 0 #cb81ea, -2px 2px 0 #cb81ea, -2px 3px 0 #cb81ea, -2px 4px 0 #cb81ea, -1px -4px 0 #cb81ea, -1px -3px 0 #cb81ea, -1px -2px 0 #cb81ea, -1px -1px 0 #cb81ea, -1px 0px 0 #cb81ea, -1px 1px 0 #cb81ea, -1px 2px 0 #cb81ea, -1px 3px 0 #cb81ea, -1px 4px 0 #cb81ea, 0px -4px 0 #cb81ea, 0px -3px 0 #cb81ea, 0px -2px 0 #cb81ea, 0px -1px 0 #cb81ea, 0px 0px 0 #cb81ea, 0px 1px 0 #cb81ea, 0px 2px 0 #cb81ea, 0px 3px 0 #cb81ea, 0px 4px 0 #cb81ea, 1px -4px 0 #cb81ea, 1px -3px 0 #cb81ea, 1px -2px 0 #cb81ea, 1px -1px 0 #cb81ea, 1px 0px 0 #cb81ea, 1px 1px 0 #cb81ea, 1px 2px 0 #cb81ea, 1px 3px 0 #cb81ea, 1px 4px 0 #cb81ea, 2px -4px 0 #cb81ea, 2px -3px 0 #cb81ea, 2px -2px 0 #cb81ea, 2px -1px 0 #cb81ea, 2px 0px 0 #cb81ea, 2px 1px 0 #cb81ea, 2px 2px 0 #cb81ea, 2px 3px 0 #cb81ea, 2px 4px 0 #cb81ea, 3px -4px 0 #cb81ea, 3px -3px 0 #cb81ea, 3px -2px 0 #cb81ea, 3px -1px 0 #cb81ea, 3px 0px 0 #cb81ea, 3px 1px 0 #cb81ea, 3px 2px 0 #cb81ea, 3px 3px 0 #cb81ea, 3px 4px 0 #cb81ea, 4px -4px 0 #cb81ea, 4px -3px 0 #cb81ea, 4px -2px 0 #cb81ea, 4px -1px 0 #cb81ea, 4px 0px 0 #cb81ea, 4px 1px 0 #cb81ea, 4px 2px 0 #cb81ea, 4px 3px 0 #cb81ea, 4px 4px 0 #cb81ea; }
50% { text-shadow: -4px -4px 0 #f1d0ff, -4px -3px 0 #f1d0ff, -4px -2px 0 #f1d0ff, -4px -1px 0 #f1d0ff, -4px 0px 0 #f1d0ff, -4px 1px 0 #f1d0ff, -4px 2px 0 #f1d0ff, -4px 3px 0 #f1d0ff, -4px 4px 0 #f1d0ff, -3px -4px 0 #f1d0ff, -3px -3px 0 #f1d0ff, -3px -2px 0 #f1d0ff, -3px -1px 0 #f1d0ff, -3px 0px 0 #f1d0ff, -3px 1px 0 #f1d0ff, -3px 2px 0 #f1d0ff, -3px 3px 0 #f1d0ff, -3px 4px 0 #f1d0ff, -2px -4px 0 #f1d0ff, -2px -3px 0 #f1d0ff, -2px -2px 0 #f1d0ff, -2px -1px 0 #f1d0ff, -2px 0px 0 #f1d0ff, -2px 1px 0 #f1d0ff, -2px 2px 0 #f1d0ff, -2px 3px 0 #f1d0ff, -2px 4px 0 #f1d0ff, -1px -4px 0 #f1d0ff, -1px -3px 0 #f1d0ff, -1px -2px 0 #f1d0ff, -1px -1px 0 #f1d0ff, -1px 0px 0 #f1d0ff, -1px 1px 0 #f1d0ff, -1px 2px 0 #f1d0ff, -1px 3px 0 #f1d0ff, -1px 4px 0 #f1d0ff, 0px -4px 0 #f1d0ff, 0px -3px 0 #f1d0ff, 0px -2px 0 #f1d0ff, 0px -1px 0 #f1d0ff, 0px 0px 0 #f1d0ff, 0px 1px 0 #f1d0ff, 0px 2px 0 #f1d0ff, 0px 3px 0 #f1d0ff, 0px 4px 0 #f1d0ff, 1px -4px 0 #f1d0ff, 1px -3px 0 #f1d0ff, 1px -2px 0 #f1d0ff, 1px -1px 0 #f1d0ff, 1px 0px 0 #f1d0ff, 1px 1px 0 #f1d0ff, 1px 2px 0 #f1d0ff, 1px 3px 0 #f1d0ff, 1px 4px 0 #f1d0ff, 2px -4px 0 #f1d0ff, 2px -3px 0 #f1d0ff, 2px -2px 0 #f1d0ff, 2px -1px 0 #f1d0ff, 2px 0px 0 #f1d0ff, 2px 1px 0 #f1d0ff, 2px 2px 0 #f1d0ff, 2px 3px 0 #f1d0ff, 2px 4px 0 #f1d0ff, 3px -4px 0 #f1d0ff, 3px -3px 0 #f1d0ff, 3px -2px 0 #f1d0ff, 3px -1px 0 #f1d0ff, 3px 0px 0 #f1d0ff, 3px 1px 0 #f1d0ff, 3px 2px 0 #f1d0ff, 3px 3px 0 #f1d0ff, 3px 4px 0 #f1d0ff, 4px -4px 0 #f1d0ff, 4px -3px 0 #f1d0ff, 4px -2px 0 #f1d0ff, 4px -1px 0 #f1d0ff, 4px 0px 0 #f1d0ff, 4px 1px 0 #f1d0ff, 4px 2px 0 #f1d0ff, 4px 3px 0 #f1d0ff, 4px 4px 0 #f1d0ff; }
75% { text-shadow: -4px -4px 0 #cb81ea, -4px -3px 0 #cb81ea, -4px -2px 0 #cb81ea, -4px -1px 0 #cb81ea, -4px 0px 0 #cb81ea, -4px 1px 0 #cb81ea, -4px 2px 0 #cb81ea, -4px 3px 0 #cb81ea, -4px 4px 0 #cb81ea, -3px -4px 0 #cb81ea, -3px -3px 0 #cb81ea, -3px -2px 0 #cb81ea, -3px -1px 0 #cb81ea, -3px 0px 0 #cb81ea, -3px 1px 0 #cb81ea, -3px 2px 0 #cb81ea, -3px 3px 0 #cb81ea, -3px 4px 0 #cb81ea, -2px -4px 0 #cb81ea, -2px -3px 0 #cb81ea, -2px -2px 0 #cb81ea, -2px -1px 0 #cb81ea, -2px 0px 0 #cb81ea, -2px 1px 0 #cb81ea, -2px 2px 0 #cb81ea, -2px 3px 0 #cb81ea, -2px 4px 0 #cb81ea, -1px -4px 0 #cb81ea, -1px -3px 0 #cb81ea, -1px -2px 0 #cb81ea, -1px -1px 0 #cb81ea, -1px 0px 0 #cb81ea, -1px 1px 0 #cb81ea, -1px 2px 0 #cb81ea, -1px 3px 0 #cb81ea, -1px 4px 0 #cb81ea, 0px -4px 0 #cb81ea, 0px -3px 0 #cb81ea, 0px -2px 0 #cb81ea, 0px -1px 0 #cb81ea, 0px 0px 0 #cb81ea, 0px 1px 0 #cb81ea, 0px 2px 0 #cb81ea, 0px 3px 0 #cb81ea, 0px 4px 0 #cb81ea, 1px -4px 0 #cb81ea, 1px -3px 0 #cb81ea, 1px -2px 0 #cb81ea, 1px -1px 0 #cb81ea, 1px 0px 0 #cb81ea, 1px 1px 0 #cb81ea, 1px 2px 0 #cb81ea, 1px 3px 0 #cb81ea, 1px 4px 0 #cb81ea, 2px -4px 0 #cb81ea, 2px -3px 0 #cb81ea, 2px -2px 0 #cb81ea, 2px -1px 0 #cb81ea, 2px 0px 0 #cb81ea, 2px 1px 0 #cb81ea, 2px 2px 0 #cb81ea, 2px 3px 0 #cb81ea, 2px 4px 0 #cb81ea, 3px -4px 0 #cb81ea, 3px -3px 0 #cb81ea, 3px -2px 0 #cb81ea, 3px -1px 0 #cb81ea, 3px 0px 0 #cb81ea, 3px 1px 0 #cb81ea, 3px 2px 0 #cb81ea, 3px 3px 0 #cb81ea, 3px 4px 0 #cb81ea, 4px -4px 0 #cb81ea, 4px -3px 0 #cb81ea, 4px -2px 0 #cb81ea, 4px -1px 0 #cb81ea, 4px 0px 0 #cb81ea, 4px 1px 0 #cb81ea, 4px 2px 0 #cb81ea, 4px 3px 0 #cb81ea, 4px 4px 0 #cb81ea; }
100% { text-shadow: -4px -4px 0 #b16cce, -4px -3px 0 #b16cce, -4px -2px 0 #b16cce, -4px -1px 0 #b16cce, -4px 0px 0 #b16cce, -4px 1px 0 #b16cce, -4px 2px 0 #b16cce, -4px 3px 0 #b16cce, -4px 4px 0 #b16cce, -3px -4px 0 #b16cce, -3px -3px 0 #b16cce, -3px -2px 0 #b16cce, -3px -1px 0 #b16cce, -3px 0px 0 #b16cce, -3px 1px 0 #b16cce, -3px 2px 0 #b16cce, -3px 3px 0 #b16cce, -3px 4px 0 #b16cce, -2px -4px 0 #b16cce, -2px -3px 0 #b16cce, -2px -2px 0 #b16cce, -2px -1px 0 #b16cce, -2px 0px 0 #b16cce, -2px 1px 0 #b16cce, -2px 2px 0 #b16cce, -2px 3px 0 #b16cce, -2px 4px 0 #b16cce, -1px -4px 0 #b16cce, -1px -3px 0 #b16cce, -1px -2px 0 #b16cce, -1px -1px 0 #b16cce, -1px 0px 0 #b16cce, -1px 1px 0 #b16cce, -1px 2px 0 #b16cce, -1px 3px 0 #b16cce, -1px 4px 0 #b16cce, 0px -4px 0 #b16cce, 0px -3px 0 #b16cce, 0px -2px 0 #b16cce, 0px -1px 0 #b16cce, 0px 0px 0 #b16cce, 0px 1px 0 #b16cce, 0px 2px 0 #b16cce, 0px 3px 0 #b16cce, 0px 4px 0 #b16cce, 1px -4px 0 #b16cce, 1px -3px 0 #b16cce, 1px -2px 0 #b16cce, 1px -1px 0 #b16cce, 1px 0px 0 #b16cce, 1px 1px 0 #b16cce, 1px 2px 0 #b16cce, 1px 3px 0 #b16cce, 1px 4px 0 #b16cce, 2px -4px 0 #b16cce, 2px -3px 0 #b16cce, 2px -2px 0 #b16cce, 2px -1px 0 #b16cce, 2px 0px 0 #b16cce, 2px 1px 0 #b16cce, 2px 2px 0 #b16cce, 2px 3px 0 #b16cce, 2px 4px 0 #b16cce, 3px -4px 0 #b16cce, 3px -3px 0 #b16cce, 3px -2px 0 #b16cce, 3px -1px 0 #b16cce, 3px 0px 0 #b16cce, 3px 1px 0 #b16cce, 3px 2px 0 #b16cce, 3px 3px 0 #b16cce, 3px 4px 0 #b16cce, 4px -4px 0 #b16cce, 4px -3px 0 #b16cce, 4px -2px 0 #b16cce, 4px -1px 0 #b16cce, 4px 0px 0 #b16cce, 4px 1px 0 #b16cce, 4px 2px 0 #b16cce, 4px 3px 0 #b16cce, 4px 4px 0 #b16cce; }
}
.logo-c {
font-size: 64px;
font-weight: bolder;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-shadow: -4px -4px 0 #b16cce, -4px -3px 0 #b16cce, -4px -2px 0 #b16cce, -4px -1px 0 #b16cce, -4px 0px 0 #b16cce, -4px 1px 0 #b16cce, -4px 2px 0 #b16cce, -4px 3px 0 #b16cce, -4px 4px 0 #b16cce, -3px -4px 0 #b16cce, -3px -3px 0 #b16cce, -3px -2px 0 #b16cce, -3px -1px 0 #b16cce, -3px 0px 0 #b16cce, -3px 1px 0 #b16cce, -3px 2px 0 #b16cce, -3px 3px 0 #b16cce, -3px 4px 0 #b16cce, -2px -4px 0 #b16cce, -2px -3px 0 #b16cce, -2px -2px 0 #b16cce, -2px -1px 0 #b16cce, -2px 0px 0 #b16cce, -2px 1px 0 #b16cce, -2px 2px 0 #b16cce, -2px 3px 0 #b16cce, -2px 4px 0 #b16cce, -1px -4px 0 #b16cce, -1px -3px 0 #b16cce, -1px -2px 0 #b16cce, -1px -1px 0 #b16cce, -1px 0px 0 #b16cce, -1px 1px 0 #b16cce, -1px 2px 0 #b16cce, -1px 3px 0 #b16cce, -1px 4px 0 #b16cce, 0px -4px 0 #b16cce, 0px -3px 0 #b16cce, 0px -2px 0 #b16cce, 0px -1px 0 #b16cce, 0px 0px 0 #b16cce, 0px 1px 0 #b16cce, 0px 2px 0 #b16cce, 0px 3px 0 #b16cce, 0px 4px 0 #b16cce, 1px -4px 0 #b16cce, 1px -3px 0 #b16cce, 1px -2px 0 #b16cce, 1px -1px 0 #b16cce, 1px 0px 0 #b16cce, 1px 1px 0 #b16cce, 1px 2px 0 #b16cce, 1px 3px 0 #b16cce, 1px 4px 0 #b16cce, 2px -4px 0 #b16cce, 2px -3px 0 #b16cce, 2px -2px 0 #b16cce, 2px -1px 0 #b16cce, 2px 0px 0 #b16cce, 2px 1px 0 #b16cce, 2px 2px 0 #b16cce, 2px 3px 0 #b16cce, 2px 4px 0 #b16cce, 3px -4px 0 #b16cce, 3px -3px 0 #b16cce, 3px -2px 0 #b16cce, 3px -1px 0 #b16cce, 3px 0px 0 #b16cce, 3px 1px 0 #b16cce, 3px 2px 0 #b16cce, 3px 3px 0 #b16cce, 3px 4px 0 #b16cce, 4px -4px 0 #b16cce, 4px -3px 0 #b16cce, 4px -2px 0 #b16cce, 4px -1px 0 #b16cce, 4px 0px 0 #b16cce, 4px 1px 0 #b16cce, 4px 2px 0 #b16cce, 4px 3px 0 #b16cce, 4px 4px 0 #b16cce;
}
.logo-c:hover { animation: sitenamehover 2s linear infinite; }
@media (max-width : 1200px) {
.logo-c { font-size: 32px; }
}
@media (max-width : 968px) {
.logo-c { font-size: 20px; }
}

16
public/css/logo_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,16 @@
.logo-img { border: 2px solid #e93de9; box-shadow: 0 0 7px 3px #f31de8; }
@-webkit-keyframes sitenamehover {
0% { text-shadow: -4px -4px 0 #f31de8, -4px -3px 0 #f31de8, -4px -2px 0 #f31de8, -4px -1px 0 #f31de8, -4px 0px 0 #f31de8, -4px 1px 0 #f31de8, -4px 2px 0 #f31de8, -4px 3px 0 #f31de8, -4px 4px 0 #f31de8, -3px -4px 0 #f31de8, -3px -3px 0 #f31de8, -3px -2px 0 #f31de8, -3px -1px 0 #f31de8, -3px 0px 0 #f31de8, -3px 1px 0 #f31de8, -3px 2px 0 #f31de8, -3px 3px 0 #f31de8, -3px 4px 0 #f31de8, -2px -4px 0 #f31de8, -2px -3px 0 #f31de8, -2px -2px 0 #f31de8, -2px -1px 0 #f31de8, -2px 0px 0 #f31de8, -2px 1px 0 #f31de8, -2px 2px 0 #f31de8, -2px 3px 0 #f31de8, -2px 4px 0 #f31de8, -1px -4px 0 #f31de8, -1px -3px 0 #f31de8, -1px -2px 0 #f31de8, -1px -1px 0 #f31de8, -1px 0px 0 #f31de8, -1px 1px 0 #f31de8, -1px 2px 0 #f31de8, -1px 3px 0 #f31de8, -1px 4px 0 #f31de8, 0px -4px 0 #f31de8, 0px -3px 0 #f31de8, 0px -2px 0 #f31de8, 0px -1px 0 #f31de8, 0px 0px 0 #f31de8, 0px 1px 0 #f31de8, 0px 2px 0 #f31de8, 0px 3px 0 #f31de8, 0px 4px 0 #f31de8, 1px -4px 0 #f31de8, 1px -3px 0 #f31de8, 1px -2px 0 #f31de8, 1px -1px 0 #f31de8, 1px 0px 0 #f31de8, 1px 1px 0 #f31de8, 1px 2px 0 #f31de8, 1px 3px 0 #f31de8, 1px 4px 0 #f31de8, 2px -4px 0 #f31de8, 2px -3px 0 #f31de8, 2px -2px 0 #f31de8, 2px -1px 0 #f31de8, 2px 0px 0 #f31de8, 2px 1px 0 #f31de8, 2px 2px 0 #f31de8, 2px 3px 0 #f31de8, 2px 4px 0 #f31de8, 3px -4px 0 #f31de8, 3px -3px 0 #f31de8, 3px -2px 0 #f31de8, 3px -1px 0 #f31de8, 3px 0px 0 #f31de8, 3px 1px 0 #f31de8, 3px 2px 0 #f31de8, 3px 3px 0 #f31de8, 3px 4px 0 #f31de8, 4px -4px 0 #f31de8, 4px -3px 0 #f31de8, 4px -2px 0 #f31de8, 4px -1px 0 #f31de8, 4px 0px 0 #f31de8, 4px 1px 0 #f31de8, 4px 2px 0 #f31de8, 4px 3px 0 #f31de8, 4px 4px 0 #f31de8; }
25% { text-shadow: -4px -4px 0 #e93de9, -4px -3px 0 #e93de9, -4px -2px 0 #e93de9, -4px -1px 0 #e93de9, -4px 0px 0 #e93de9, -4px 1px 0 #e93de9, -4px 2px 0 #e93de9, -4px 3px 0 #e93de9, -4px 4px 0 #e93de9, -3px -4px 0 #e93de9, -3px -3px 0 #e93de9, -3px -2px 0 #e93de9, -3px -1px 0 #e93de9, -3px 0px 0 #e93de9, -3px 1px 0 #e93de9, -3px 2px 0 #e93de9, -3px 3px 0 #e93de9, -3px 4px 0 #e93de9, -2px -4px 0 #e93de9, -2px -3px 0 #e93de9, -2px -2px 0 #e93de9, -2px -1px 0 #e93de9, -2px 0px 0 #e93de9, -2px 1px 0 #e93de9, -2px 2px 0 #e93de9, -2px 3px 0 #e93de9, -2px 4px 0 #e93de9, -1px -4px 0 #e93de9, -1px -3px 0 #e93de9, -1px -2px 0 #e93de9, -1px -1px 0 #e93de9, -1px 0px 0 #e93de9, -1px 1px 0 #e93de9, -1px 2px 0 #e93de9, -1px 3px 0 #e93de9, -1px 4px 0 #e93de9, 0px -4px 0 #e93de9, 0px -3px 0 #e93de9, 0px -2px 0 #e93de9, 0px -1px 0 #e93de9, 0px 0px 0 #e93de9, 0px 1px 0 #e93de9, 0px 2px 0 #e93de9, 0px 3px 0 #e93de9, 0px 4px 0 #e93de9, 1px -4px 0 #e93de9, 1px -3px 0 #e93de9, 1px -2px 0 #e93de9, 1px -1px 0 #e93de9, 1px 0px 0 #e93de9, 1px 1px 0 #e93de9, 1px 2px 0 #e93de9, 1px 3px 0 #e93de9, 1px 4px 0 #e93de9, 2px -4px 0 #e93de9, 2px -3px 0 #e93de9, 2px -2px 0 #e93de9, 2px -1px 0 #e93de9, 2px 0px 0 #e93de9, 2px 1px 0 #e93de9, 2px 2px 0 #e93de9, 2px 3px 0 #e93de9, 2px 4px 0 #e93de9, 3px -4px 0 #e93de9, 3px -3px 0 #e93de9, 3px -2px 0 #e93de9, 3px -1px 0 #e93de9, 3px 0px 0 #e93de9, 3px 1px 0 #e93de9, 3px 2px 0 #e93de9, 3px 3px 0 #e93de9, 3px 4px 0 #e93de9, 4px -4px 0 #e93de9, 4px -3px 0 #e93de9, 4px -2px 0 #e93de9, 4px -1px 0 #e93de9, 4px 0px 0 #e93de9, 4px 1px 0 #e93de9, 4px 2px 0 #e93de9, 4px 3px 0 #e93de9, 4px 4px 0 #e93de9; }
50% { text-shadow: -4px -4px 0 #ffe6f9, -4px -3px 0 #ffe6f9, -4px -2px 0 #ffe6f9, -4px -1px 0 #ffe6f9, -4px 0px 0 #ffe6f9, -4px 1px 0 #ffe6f9, -4px 2px 0 #ffe6f9, -4px 3px 0 #ffe6f9, -4px 4px 0 #ffe6f9, -3px -4px 0 #ffe6f9, -3px -3px 0 #ffe6f9, -3px -2px 0 #ffe6f9, -3px -1px 0 #ffe6f9, -3px 0px 0 #ffe6f9, -3px 1px 0 #ffe6f9, -3px 2px 0 #ffe6f9, -3px 3px 0 #ffe6f9, -3px 4px 0 #ffe6f9, -2px -4px 0 #ffe6f9, -2px -3px 0 #ffe6f9, -2px -2px 0 #ffe6f9, -2px -1px 0 #ffe6f9, -2px 0px 0 #ffe6f9, -2px 1px 0 #ffe6f9, -2px 2px 0 #ffe6f9, -2px 3px 0 #ffe6f9, -2px 4px 0 #ffe6f9, -1px -4px 0 #ffe6f9, -1px -3px 0 #ffe6f9, -1px -2px 0 #ffe6f9, -1px -1px 0 #ffe6f9, -1px 0px 0 #ffe6f9, -1px 1px 0 #ffe6f9, -1px 2px 0 #ffe6f9, -1px 3px 0 #ffe6f9, -1px 4px 0 #ffe6f9, 0px -4px 0 #ffe6f9, 0px -3px 0 #ffe6f9, 0px -2px 0 #ffe6f9, 0px -1px 0 #ffe6f9, 0px 0px 0 #ffe6f9, 0px 1px 0 #ffe6f9, 0px 2px 0 #ffe6f9, 0px 3px 0 #ffe6f9, 0px 4px 0 #ffe6f9, 1px -4px 0 #ffe6f9, 1px -3px 0 #ffe6f9, 1px -2px 0 #ffe6f9, 1px -1px 0 #ffe6f9, 1px 0px 0 #ffe6f9, 1px 1px 0 #ffe6f9, 1px 2px 0 #ffe6f9, 1px 3px 0 #ffe6f9, 1px 4px 0 #ffe6f9, 2px -4px 0 #ffe6f9, 2px -3px 0 #ffe6f9, 2px -2px 0 #ffe6f9, 2px -1px 0 #ffe6f9, 2px 0px 0 #ffe6f9, 2px 1px 0 #ffe6f9, 2px 2px 0 #ffe6f9, 2px 3px 0 #ffe6f9, 2px 4px 0 #ffe6f9, 3px -4px 0 #ffe6f9, 3px -3px 0 #ffe6f9, 3px -2px 0 #ffe6f9, 3px -1px 0 #ffe6f9, 3px 0px 0 #ffe6f9, 3px 1px 0 #ffe6f9, 3px 2px 0 #ffe6f9, 3px 3px 0 #ffe6f9, 3px 4px 0 #ffe6f9, 4px -4px 0 #ffe6f9, 4px -3px 0 #ffe6f9, 4px -2px 0 #ffe6f9, 4px -1px 0 #ffe6f9, 4px 0px 0 #ffe6f9, 4px 1px 0 #ffe6f9, 4px 2px 0 #ffe6f9, 4px 3px 0 #ffe6f9, 4px 4px 0 #ffe6f9; }
75% { text-shadow: -4px -4px 0 #e93de9, -4px -3px 0 #e93de9, -4px -2px 0 #e93de9, -4px -1px 0 #e93de9, -4px 0px 0 #e93de9, -4px 1px 0 #e93de9, -4px 2px 0 #e93de9, -4px 3px 0 #e93de9, -4px 4px 0 #e93de9, -3px -4px 0 #e93de9, -3px -3px 0 #e93de9, -3px -2px 0 #e93de9, -3px -1px 0 #e93de9, -3px 0px 0 #e93de9, -3px 1px 0 #e93de9, -3px 2px 0 #e93de9, -3px 3px 0 #e93de9, -3px 4px 0 #e93de9, -2px -4px 0 #e93de9, -2px -3px 0 #e93de9, -2px -2px 0 #e93de9, -2px -1px 0 #e93de9, -2px 0px 0 #e93de9, -2px 1px 0 #e93de9, -2px 2px 0 #e93de9, -2px 3px 0 #e93de9, -2px 4px 0 #e93de9, -1px -4px 0 #e93de9, -1px -3px 0 #e93de9, -1px -2px 0 #e93de9, -1px -1px 0 #e93de9, -1px 0px 0 #e93de9, -1px 1px 0 #e93de9, -1px 2px 0 #e93de9, -1px 3px 0 #e93de9, -1px 4px 0 #e93de9, 0px -4px 0 #e93de9, 0px -3px 0 #e93de9, 0px -2px 0 #e93de9, 0px -1px 0 #e93de9, 0px 0px 0 #e93de9, 0px 1px 0 #e93de9, 0px 2px 0 #e93de9, 0px 3px 0 #e93de9, 0px 4px 0 #e93de9, 1px -4px 0 #e93de9, 1px -3px 0 #e93de9, 1px -2px 0 #e93de9, 1px -1px 0 #e93de9, 1px 0px 0 #e93de9, 1px 1px 0 #e93de9, 1px 2px 0 #e93de9, 1px 3px 0 #e93de9, 1px 4px 0 #e93de9, 2px -4px 0 #e93de9, 2px -3px 0 #e93de9, 2px -2px 0 #e93de9, 2px -1px 0 #e93de9, 2px 0px 0 #e93de9, 2px 1px 0 #e93de9, 2px 2px 0 #e93de9, 2px 3px 0 #e93de9, 2px 4px 0 #e93de9, 3px -4px 0 #e93de9, 3px -3px 0 #e93de9, 3px -2px 0 #e93de9, 3px -1px 0 #e93de9, 3px 0px 0 #e93de9, 3px 1px 0 #e93de9, 3px 2px 0 #e93de9, 3px 3px 0 #e93de9, 3px 4px 0 #e93de9, 4px -4px 0 #e93de9, 4px -3px 0 #e93de9, 4px -2px 0 #e93de9, 4px -1px 0 #e93de9, 4px 0px 0 #e93de9, 4px 1px 0 #e93de9, 4px 2px 0 #e93de9, 4px 3px 0 #e93de9, 4px 4px 0 #e93de9; }
100% { text-shadow: -4px -4px 0 #f31de8, -4px -3px 0 #f31de8, -4px -2px 0 #f31de8, -4px -1px 0 #f31de8, -4px 0px 0 #f31de8, -4px 1px 0 #f31de8, -4px 2px 0 #f31de8, -4px 3px 0 #f31de8, -4px 4px 0 #f31de8, -3px -4px 0 #f31de8, -3px -3px 0 #f31de8, -3px -2px 0 #f31de8, -3px -1px 0 #f31de8, -3px 0px 0 #f31de8, -3px 1px 0 #f31de8, -3px 2px 0 #f31de8, -3px 3px 0 #f31de8, -3px 4px 0 #f31de8, -2px -4px 0 #f31de8, -2px -3px 0 #f31de8, -2px -2px 0 #f31de8, -2px -1px 0 #f31de8, -2px 0px 0 #f31de8, -2px 1px 0 #f31de8, -2px 2px 0 #f31de8, -2px 3px 0 #f31de8, -2px 4px 0 #f31de8, -1px -4px 0 #f31de8, -1px -3px 0 #f31de8, -1px -2px 0 #f31de8, -1px -1px 0 #f31de8, -1px 0px 0 #f31de8, -1px 1px 0 #f31de8, -1px 2px 0 #f31de8, -1px 3px 0 #f31de8, -1px 4px 0 #f31de8, 0px -4px 0 #f31de8, 0px -3px 0 #f31de8, 0px -2px 0 #f31de8, 0px -1px 0 #f31de8, 0px 0px 0 #f31de8, 0px 1px 0 #f31de8, 0px 2px 0 #f31de8, 0px 3px 0 #f31de8, 0px 4px 0 #f31de8, 1px -4px 0 #f31de8, 1px -3px 0 #f31de8, 1px -2px 0 #f31de8, 1px -1px 0 #f31de8, 1px 0px 0 #f31de8, 1px 1px 0 #f31de8, 1px 2px 0 #f31de8, 1px 3px 0 #f31de8, 1px 4px 0 #f31de8, 2px -4px 0 #f31de8, 2px -3px 0 #f31de8, 2px -2px 0 #f31de8, 2px -1px 0 #f31de8, 2px 0px 0 #f31de8, 2px 1px 0 #f31de8, 2px 2px 0 #f31de8, 2px 3px 0 #f31de8, 2px 4px 0 #f31de8, 3px -4px 0 #f31de8, 3px -3px 0 #f31de8, 3px -2px 0 #f31de8, 3px -1px 0 #f31de8, 3px 0px 0 #f31de8, 3px 1px 0 #f31de8, 3px 2px 0 #f31de8, 3px 3px 0 #f31de8, 3px 4px 0 #f31de8, 4px -4px 0 #f31de8, 4px -3px 0 #f31de8, 4px -2px 0 #f31de8, 4px -1px 0 #f31de8, 4px 0px 0 #f31de8, 4px 1px 0 #f31de8, 4px 2px 0 #f31de8, 4px 3px 0 #f31de8, 4px 4px 0 #f31de8; }
}
@keyframes sitenamehover {
0% { text-shadow: -4px -4px 0 #f31de8, -4px -3px 0 #f31de8, -4px -2px 0 #f31de8, -4px -1px 0 #f31de8, -4px 0px 0 #f31de8, -4px 1px 0 #f31de8, -4px 2px 0 #f31de8, -4px 3px 0 #f31de8, -4px 4px 0 #f31de8, -3px -4px 0 #f31de8, -3px -3px 0 #f31de8, -3px -2px 0 #f31de8, -3px -1px 0 #f31de8, -3px 0px 0 #f31de8, -3px 1px 0 #f31de8, -3px 2px 0 #f31de8, -3px 3px 0 #f31de8, -3px 4px 0 #f31de8, -2px -4px 0 #f31de8, -2px -3px 0 #f31de8, -2px -2px 0 #f31de8, -2px -1px 0 #f31de8, -2px 0px 0 #f31de8, -2px 1px 0 #f31de8, -2px 2px 0 #f31de8, -2px 3px 0 #f31de8, -2px 4px 0 #f31de8, -1px -4px 0 #f31de8, -1px -3px 0 #f31de8, -1px -2px 0 #f31de8, -1px -1px 0 #f31de8, -1px 0px 0 #f31de8, -1px 1px 0 #f31de8, -1px 2px 0 #f31de8, -1px 3px 0 #f31de8, -1px 4px 0 #f31de8, 0px -4px 0 #f31de8, 0px -3px 0 #f31de8, 0px -2px 0 #f31de8, 0px -1px 0 #f31de8, 0px 0px 0 #f31de8, 0px 1px 0 #f31de8, 0px 2px 0 #f31de8, 0px 3px 0 #f31de8, 0px 4px 0 #f31de8, 1px -4px 0 #f31de8, 1px -3px 0 #f31de8, 1px -2px 0 #f31de8, 1px -1px 0 #f31de8, 1px 0px 0 #f31de8, 1px 1px 0 #f31de8, 1px 2px 0 #f31de8, 1px 3px 0 #f31de8, 1px 4px 0 #f31de8, 2px -4px 0 #f31de8, 2px -3px 0 #f31de8, 2px -2px 0 #f31de8, 2px -1px 0 #f31de8, 2px 0px 0 #f31de8, 2px 1px 0 #f31de8, 2px 2px 0 #f31de8, 2px 3px 0 #f31de8, 2px 4px 0 #f31de8, 3px -4px 0 #f31de8, 3px -3px 0 #f31de8, 3px -2px 0 #f31de8, 3px -1px 0 #f31de8, 3px 0px 0 #f31de8, 3px 1px 0 #f31de8, 3px 2px 0 #f31de8, 3px 3px 0 #f31de8, 3px 4px 0 #f31de8, 4px -4px 0 #f31de8, 4px -3px 0 #f31de8, 4px -2px 0 #f31de8, 4px -1px 0 #f31de8, 4px 0px 0 #f31de8, 4px 1px 0 #f31de8, 4px 2px 0 #f31de8, 4px 3px 0 #f31de8, 4px 4px 0 #f31de8; }
25% { text-shadow: -4px -4px 0 #e93de9, -4px -3px 0 #e93de9, -4px -2px 0 #e93de9, -4px -1px 0 #e93de9, -4px 0px 0 #e93de9, -4px 1px 0 #e93de9, -4px 2px 0 #e93de9, -4px 3px 0 #e93de9, -4px 4px 0 #e93de9, -3px -4px 0 #e93de9, -3px -3px 0 #e93de9, -3px -2px 0 #e93de9, -3px -1px 0 #e93de9, -3px 0px 0 #e93de9, -3px 1px 0 #e93de9, -3px 2px 0 #e93de9, -3px 3px 0 #e93de9, -3px 4px 0 #e93de9, -2px -4px 0 #e93de9, -2px -3px 0 #e93de9, -2px -2px 0 #e93de9, -2px -1px 0 #e93de9, -2px 0px 0 #e93de9, -2px 1px 0 #e93de9, -2px 2px 0 #e93de9, -2px 3px 0 #e93de9, -2px 4px 0 #e93de9, -1px -4px 0 #e93de9, -1px -3px 0 #e93de9, -1px -2px 0 #e93de9, -1px -1px 0 #e93de9, -1px 0px 0 #e93de9, -1px 1px 0 #e93de9, -1px 2px 0 #e93de9, -1px 3px 0 #e93de9, -1px 4px 0 #e93de9, 0px -4px 0 #e93de9, 0px -3px 0 #e93de9, 0px -2px 0 #e93de9, 0px -1px 0 #e93de9, 0px 0px 0 #e93de9, 0px 1px 0 #e93de9, 0px 2px 0 #e93de9, 0px 3px 0 #e93de9, 0px 4px 0 #e93de9, 1px -4px 0 #e93de9, 1px -3px 0 #e93de9, 1px -2px 0 #e93de9, 1px -1px 0 #e93de9, 1px 0px 0 #e93de9, 1px 1px 0 #e93de9, 1px 2px 0 #e93de9, 1px 3px 0 #e93de9, 1px 4px 0 #e93de9, 2px -4px 0 #e93de9, 2px -3px 0 #e93de9, 2px -2px 0 #e93de9, 2px -1px 0 #e93de9, 2px 0px 0 #e93de9, 2px 1px 0 #e93de9, 2px 2px 0 #e93de9, 2px 3px 0 #e93de9, 2px 4px 0 #e93de9, 3px -4px 0 #e93de9, 3px -3px 0 #e93de9, 3px -2px 0 #e93de9, 3px -1px 0 #e93de9, 3px 0px 0 #e93de9, 3px 1px 0 #e93de9, 3px 2px 0 #e93de9, 3px 3px 0 #e93de9, 3px 4px 0 #e93de9, 4px -4px 0 #e93de9, 4px -3px 0 #e93de9, 4px -2px 0 #e93de9, 4px -1px 0 #e93de9, 4px 0px 0 #e93de9, 4px 1px 0 #e93de9, 4px 2px 0 #e93de9, 4px 3px 0 #e93de9, 4px 4px 0 #e93de9; }
50% { text-shadow: -4px -4px 0 #ffe6f9, -4px -3px 0 #ffe6f9, -4px -2px 0 #ffe6f9, -4px -1px 0 #ffe6f9, -4px 0px 0 #ffe6f9, -4px 1px 0 #ffe6f9, -4px 2px 0 #ffe6f9, -4px 3px 0 #ffe6f9, -4px 4px 0 #ffe6f9, -3px -4px 0 #ffe6f9, -3px -3px 0 #ffe6f9, -3px -2px 0 #ffe6f9, -3px -1px 0 #ffe6f9, -3px 0px 0 #ffe6f9, -3px 1px 0 #ffe6f9, -3px 2px 0 #ffe6f9, -3px 3px 0 #ffe6f9, -3px 4px 0 #ffe6f9, -2px -4px 0 #ffe6f9, -2px -3px 0 #ffe6f9, -2px -2px 0 #ffe6f9, -2px -1px 0 #ffe6f9, -2px 0px 0 #ffe6f9, -2px 1px 0 #ffe6f9, -2px 2px 0 #ffe6f9, -2px 3px 0 #ffe6f9, -2px 4px 0 #ffe6f9, -1px -4px 0 #ffe6f9, -1px -3px 0 #ffe6f9, -1px -2px 0 #ffe6f9, -1px -1px 0 #ffe6f9, -1px 0px 0 #ffe6f9, -1px 1px 0 #ffe6f9, -1px 2px 0 #ffe6f9, -1px 3px 0 #ffe6f9, -1px 4px 0 #ffe6f9, 0px -4px 0 #ffe6f9, 0px -3px 0 #ffe6f9, 0px -2px 0 #ffe6f9, 0px -1px 0 #ffe6f9, 0px 0px 0 #ffe6f9, 0px 1px 0 #ffe6f9, 0px 2px 0 #ffe6f9, 0px 3px 0 #ffe6f9, 0px 4px 0 #ffe6f9, 1px -4px 0 #ffe6f9, 1px -3px 0 #ffe6f9, 1px -2px 0 #ffe6f9, 1px -1px 0 #ffe6f9, 1px 0px 0 #ffe6f9, 1px 1px 0 #ffe6f9, 1px 2px 0 #ffe6f9, 1px 3px 0 #ffe6f9, 1px 4px 0 #ffe6f9, 2px -4px 0 #ffe6f9, 2px -3px 0 #ffe6f9, 2px -2px 0 #ffe6f9, 2px -1px 0 #ffe6f9, 2px 0px 0 #ffe6f9, 2px 1px 0 #ffe6f9, 2px 2px 0 #ffe6f9, 2px 3px 0 #ffe6f9, 2px 4px 0 #ffe6f9, 3px -4px 0 #ffe6f9, 3px -3px 0 #ffe6f9, 3px -2px 0 #ffe6f9, 3px -1px 0 #ffe6f9, 3px 0px 0 #ffe6f9, 3px 1px 0 #ffe6f9, 3px 2px 0 #ffe6f9, 3px 3px 0 #ffe6f9, 3px 4px 0 #ffe6f9, 4px -4px 0 #ffe6f9, 4px -3px 0 #ffe6f9, 4px -2px 0 #ffe6f9, 4px -1px 0 #ffe6f9, 4px 0px 0 #ffe6f9, 4px 1px 0 #ffe6f9, 4px 2px 0 #ffe6f9, 4px 3px 0 #ffe6f9, 4px 4px 0 #ffe6f9; }
75% { text-shadow: -4px -4px 0 #e93de9, -4px -3px 0 #e93de9, -4px -2px 0 #e93de9, -4px -1px 0 #e93de9, -4px 0px 0 #e93de9, -4px 1px 0 #e93de9, -4px 2px 0 #e93de9, -4px 3px 0 #e93de9, -4px 4px 0 #e93de9, -3px -4px 0 #e93de9, -3px -3px 0 #e93de9, -3px -2px 0 #e93de9, -3px -1px 0 #e93de9, -3px 0px 0 #e93de9, -3px 1px 0 #e93de9, -3px 2px 0 #e93de9, -3px 3px 0 #e93de9, -3px 4px 0 #e93de9, -2px -4px 0 #e93de9, -2px -3px 0 #e93de9, -2px -2px 0 #e93de9, -2px -1px 0 #e93de9, -2px 0px 0 #e93de9, -2px 1px 0 #e93de9, -2px 2px 0 #e93de9, -2px 3px 0 #e93de9, -2px 4px 0 #e93de9, -1px -4px 0 #e93de9, -1px -3px 0 #e93de9, -1px -2px 0 #e93de9, -1px -1px 0 #e93de9, -1px 0px 0 #e93de9, -1px 1px 0 #e93de9, -1px 2px 0 #e93de9, -1px 3px 0 #e93de9, -1px 4px 0 #e93de9, 0px -4px 0 #e93de9, 0px -3px 0 #e93de9, 0px -2px 0 #e93de9, 0px -1px 0 #e93de9, 0px 0px 0 #e93de9, 0px 1px 0 #e93de9, 0px 2px 0 #e93de9, 0px 3px 0 #e93de9, 0px 4px 0 #e93de9, 1px -4px 0 #e93de9, 1px -3px 0 #e93de9, 1px -2px 0 #e93de9, 1px -1px 0 #e93de9, 1px 0px 0 #e93de9, 1px 1px 0 #e93de9, 1px 2px 0 #e93de9, 1px 3px 0 #e93de9, 1px 4px 0 #e93de9, 2px -4px 0 #e93de9, 2px -3px 0 #e93de9, 2px -2px 0 #e93de9, 2px -1px 0 #e93de9, 2px 0px 0 #e93de9, 2px 1px 0 #e93de9, 2px 2px 0 #e93de9, 2px 3px 0 #e93de9, 2px 4px 0 #e93de9, 3px -4px 0 #e93de9, 3px -3px 0 #e93de9, 3px -2px 0 #e93de9, 3px -1px 0 #e93de9, 3px 0px 0 #e93de9, 3px 1px 0 #e93de9, 3px 2px 0 #e93de9, 3px 3px 0 #e93de9, 3px 4px 0 #e93de9, 4px -4px 0 #e93de9, 4px -3px 0 #e93de9, 4px -2px 0 #e93de9, 4px -1px 0 #e93de9, 4px 0px 0 #e93de9, 4px 1px 0 #e93de9, 4px 2px 0 #e93de9, 4px 3px 0 #e93de9, 4px 4px 0 #e93de9; }
100% { text-shadow: -4px -4px 0 #f31de8, -4px -3px 0 #f31de8, -4px -2px 0 #f31de8, -4px -1px 0 #f31de8, -4px 0px 0 #f31de8, -4px 1px 0 #f31de8, -4px 2px 0 #f31de8, -4px 3px 0 #f31de8, -4px 4px 0 #f31de8, -3px -4px 0 #f31de8, -3px -3px 0 #f31de8, -3px -2px 0 #f31de8, -3px -1px 0 #f31de8, -3px 0px 0 #f31de8, -3px 1px 0 #f31de8, -3px 2px 0 #f31de8, -3px 3px 0 #f31de8, -3px 4px 0 #f31de8, -2px -4px 0 #f31de8, -2px -3px 0 #f31de8, -2px -2px 0 #f31de8, -2px -1px 0 #f31de8, -2px 0px 0 #f31de8, -2px 1px 0 #f31de8, -2px 2px 0 #f31de8, -2px 3px 0 #f31de8, -2px 4px 0 #f31de8, -1px -4px 0 #f31de8, -1px -3px 0 #f31de8, -1px -2px 0 #f31de8, -1px -1px 0 #f31de8, -1px 0px 0 #f31de8, -1px 1px 0 #f31de8, -1px 2px 0 #f31de8, -1px 3px 0 #f31de8, -1px 4px 0 #f31de8, 0px -4px 0 #f31de8, 0px -3px 0 #f31de8, 0px -2px 0 #f31de8, 0px -1px 0 #f31de8, 0px 0px 0 #f31de8, 0px 1px 0 #f31de8, 0px 2px 0 #f31de8, 0px 3px 0 #f31de8, 0px 4px 0 #f31de8, 1px -4px 0 #f31de8, 1px -3px 0 #f31de8, 1px -2px 0 #f31de8, 1px -1px 0 #f31de8, 1px 0px 0 #f31de8, 1px 1px 0 #f31de8, 1px 2px 0 #f31de8, 1px 3px 0 #f31de8, 1px 4px 0 #f31de8, 2px -4px 0 #f31de8, 2px -3px 0 #f31de8, 2px -2px 0 #f31de8, 2px -1px 0 #f31de8, 2px 0px 0 #f31de8, 2px 1px 0 #f31de8, 2px 2px 0 #f31de8, 2px 3px 0 #f31de8, 2px 4px 0 #f31de8, 3px -4px 0 #f31de8, 3px -3px 0 #f31de8, 3px -2px 0 #f31de8, 3px -1px 0 #f31de8, 3px 0px 0 #f31de8, 3px 1px 0 #f31de8, 3px 2px 0 #f31de8, 3px 3px 0 #f31de8, 3px 4px 0 #f31de8, 4px -4px 0 #f31de8, 4px -3px 0 #f31de8, 4px -2px 0 #f31de8, 4px -1px 0 #f31de8, 4px 0px 0 #f31de8, 4px 1px 0 #f31de8, 4px 2px 0 #f31de8, 4px 3px 0 #f31de8, 4px 4px 0 #f31de8; }
}
.logo-c { text-shadow: -4px -4px 0 #f31de8, -4px -3px 0 #f31de8, -4px -2px 0 #f31de8, -4px -1px 0 #f31de8, -4px 0px 0 #f31de8, -4px 1px 0 #f31de8, -4px 2px 0 #f31de8, -4px 3px 0 #f31de8, -4px 4px 0 #f31de8, -3px -4px 0 #f31de8, -3px -3px 0 #f31de8, -3px -2px 0 #f31de8, -3px -1px 0 #f31de8, -3px 0px 0 #f31de8, -3px 1px 0 #f31de8, -3px 2px 0 #f31de8, -3px 3px 0 #f31de8, -3px 4px 0 #f31de8, -2px -4px 0 #f31de8, -2px -3px 0 #f31de8, -2px -2px 0 #f31de8, -2px -1px 0 #f31de8, -2px 0px 0 #f31de8, -2px 1px 0 #f31de8, -2px 2px 0 #f31de8, -2px 3px 0 #f31de8, -2px 4px 0 #f31de8, -1px -4px 0 #f31de8, -1px -3px 0 #f31de8, -1px -2px 0 #f31de8, -1px -1px 0 #f31de8, -1px 0px 0 #f31de8, -1px 1px 0 #f31de8, -1px 2px 0 #f31de8, -1px 3px 0 #f31de8, -1px 4px 0 #f31de8, 0px -4px 0 #f31de8, 0px -3px 0 #f31de8, 0px -2px 0 #f31de8, 0px -1px 0 #f31de8, 0px 0px 0 #f31de8, 0px 1px 0 #f31de8, 0px 2px 0 #f31de8, 0px 3px 0 #f31de8, 0px 4px 0 #f31de8, 1px -4px 0 #f31de8, 1px -3px 0 #f31de8, 1px -2px 0 #f31de8, 1px -1px 0 #f31de8, 1px 0px 0 #f31de8, 1px 1px 0 #f31de8, 1px 2px 0 #f31de8, 1px 3px 0 #f31de8, 1px 4px 0 #f31de8, 2px -4px 0 #f31de8, 2px -3px 0 #f31de8, 2px -2px 0 #f31de8, 2px -1px 0 #f31de8, 2px 0px 0 #f31de8, 2px 1px 0 #f31de8, 2px 2px 0 #f31de8, 2px 3px 0 #f31de8, 2px 4px 0 #f31de8, 3px -4px 0 #f31de8, 3px -3px 0 #f31de8, 3px -2px 0 #f31de8, 3px -1px 0 #f31de8, 3px 0px 0 #f31de8, 3px 1px 0 #f31de8, 3px 2px 0 #f31de8, 3px 3px 0 #f31de8, 3px 4px 0 #f31de8, 4px -4px 0 #f31de8, 4px -3px 0 #f31de8, 4px -2px 0 #f31de8, 4px -1px 0 #f31de8, 4px 0px 0 #f31de8, 4px 1px 0 #f31de8, 4px 2px 0 #f31de8, 4px 3px 0 #f31de8, 4px 4px 0 #f31de8; }

16
public/css/logo_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,16 @@
.logo-img { border: 2px solid #3daee9; box-shadow: 0 0 7px 3px #1d99f3; }
@-webkit-keyframes sitenamehover {
0% { text-shadow: -4px -4px 0 #1d99f3, -4px -3px 0 #1d99f3, -4px -2px 0 #1d99f3, -4px -1px 0 #1d99f3, -4px 0px 0 #1d99f3, -4px 1px 0 #1d99f3, -4px 2px 0 #1d99f3, -4px 3px 0 #1d99f3, -4px 4px 0 #1d99f3, -3px -4px 0 #1d99f3, -3px -3px 0 #1d99f3, -3px -2px 0 #1d99f3, -3px -1px 0 #1d99f3, -3px 0px 0 #1d99f3, -3px 1px 0 #1d99f3, -3px 2px 0 #1d99f3, -3px 3px 0 #1d99f3, -3px 4px 0 #1d99f3, -2px -4px 0 #1d99f3, -2px -3px 0 #1d99f3, -2px -2px 0 #1d99f3, -2px -1px 0 #1d99f3, -2px 0px 0 #1d99f3, -2px 1px 0 #1d99f3, -2px 2px 0 #1d99f3, -2px 3px 0 #1d99f3, -2px 4px 0 #1d99f3, -1px -4px 0 #1d99f3, -1px -3px 0 #1d99f3, -1px -2px 0 #1d99f3, -1px -1px 0 #1d99f3, -1px 0px 0 #1d99f3, -1px 1px 0 #1d99f3, -1px 2px 0 #1d99f3, -1px 3px 0 #1d99f3, -1px 4px 0 #1d99f3, 0px -4px 0 #1d99f3, 0px -3px 0 #1d99f3, 0px -2px 0 #1d99f3, 0px -1px 0 #1d99f3, 0px 0px 0 #1d99f3, 0px 1px 0 #1d99f3, 0px 2px 0 #1d99f3, 0px 3px 0 #1d99f3, 0px 4px 0 #1d99f3, 1px -4px 0 #1d99f3, 1px -3px 0 #1d99f3, 1px -2px 0 #1d99f3, 1px -1px 0 #1d99f3, 1px 0px 0 #1d99f3, 1px 1px 0 #1d99f3, 1px 2px 0 #1d99f3, 1px 3px 0 #1d99f3, 1px 4px 0 #1d99f3, 2px -4px 0 #1d99f3, 2px -3px 0 #1d99f3, 2px -2px 0 #1d99f3, 2px -1px 0 #1d99f3, 2px 0px 0 #1d99f3, 2px 1px 0 #1d99f3, 2px 2px 0 #1d99f3, 2px 3px 0 #1d99f3, 2px 4px 0 #1d99f3, 3px -4px 0 #1d99f3, 3px -3px 0 #1d99f3, 3px -2px 0 #1d99f3, 3px -1px 0 #1d99f3, 3px 0px 0 #1d99f3, 3px 1px 0 #1d99f3, 3px 2px 0 #1d99f3, 3px 3px 0 #1d99f3, 3px 4px 0 #1d99f3, 4px -4px 0 #1d99f3, 4px -3px 0 #1d99f3, 4px -2px 0 #1d99f3, 4px -1px 0 #1d99f3, 4px 0px 0 #1d99f3, 4px 1px 0 #1d99f3, 4px 2px 0 #1d99f3, 4px 3px 0 #1d99f3, 4px 4px 0 #1d99f3; }
25% { text-shadow: -4px -4px 0 #3daee9, -4px -3px 0 #3daee9, -4px -2px 0 #3daee9, -4px -1px 0 #3daee9, -4px 0px 0 #3daee9, -4px 1px 0 #3daee9, -4px 2px 0 #3daee9, -4px 3px 0 #3daee9, -4px 4px 0 #3daee9, -3px -4px 0 #3daee9, -3px -3px 0 #3daee9, -3px -2px 0 #3daee9, -3px -1px 0 #3daee9, -3px 0px 0 #3daee9, -3px 1px 0 #3daee9, -3px 2px 0 #3daee9, -3px 3px 0 #3daee9, -3px 4px 0 #3daee9, -2px -4px 0 #3daee9, -2px -3px 0 #3daee9, -2px -2px 0 #3daee9, -2px -1px 0 #3daee9, -2px 0px 0 #3daee9, -2px 1px 0 #3daee9, -2px 2px 0 #3daee9, -2px 3px 0 #3daee9, -2px 4px 0 #3daee9, -1px -4px 0 #3daee9, -1px -3px 0 #3daee9, -1px -2px 0 #3daee9, -1px -1px 0 #3daee9, -1px 0px 0 #3daee9, -1px 1px 0 #3daee9, -1px 2px 0 #3daee9, -1px 3px 0 #3daee9, -1px 4px 0 #3daee9, 0px -4px 0 #3daee9, 0px -3px 0 #3daee9, 0px -2px 0 #3daee9, 0px -1px 0 #3daee9, 0px 0px 0 #3daee9, 0px 1px 0 #3daee9, 0px 2px 0 #3daee9, 0px 3px 0 #3daee9, 0px 4px 0 #3daee9, 1px -4px 0 #3daee9, 1px -3px 0 #3daee9, 1px -2px 0 #3daee9, 1px -1px 0 #3daee9, 1px 0px 0 #3daee9, 1px 1px 0 #3daee9, 1px 2px 0 #3daee9, 1px 3px 0 #3daee9, 1px 4px 0 #3daee9, 2px -4px 0 #3daee9, 2px -3px 0 #3daee9, 2px -2px 0 #3daee9, 2px -1px 0 #3daee9, 2px 0px 0 #3daee9, 2px 1px 0 #3daee9, 2px 2px 0 #3daee9, 2px 3px 0 #3daee9, 2px 4px 0 #3daee9, 3px -4px 0 #3daee9, 3px -3px 0 #3daee9, 3px -2px 0 #3daee9, 3px -1px 0 #3daee9, 3px 0px 0 #3daee9, 3px 1px 0 #3daee9, 3px 2px 0 #3daee9, 3px 3px 0 #3daee9, 3px 4px 0 #3daee9, 4px -4px 0 #3daee9, 4px -3px 0 #3daee9, 4px -2px 0 #3daee9, 4px -1px 0 #3daee9, 4px 0px 0 #3daee9, 4px 1px 0 #3daee9, 4px 2px 0 #3daee9, 4px 3px 0 #3daee9, 4px 4px 0 #3daee9; }
50% { text-shadow: -4px -4px 0 #9ed6ff, -4px -3px 0 #9ed6ff, -4px -2px 0 #9ed6ff, -4px -1px 0 #9ed6ff, -4px 0px 0 #9ed6ff, -4px 1px 0 #9ed6ff, -4px 2px 0 #9ed6ff, -4px 3px 0 #9ed6ff, -4px 4px 0 #9ed6ff, -3px -4px 0 #9ed6ff, -3px -3px 0 #9ed6ff, -3px -2px 0 #9ed6ff, -3px -1px 0 #9ed6ff, -3px 0px 0 #9ed6ff, -3px 1px 0 #9ed6ff, -3px 2px 0 #9ed6ff, -3px 3px 0 #9ed6ff, -3px 4px 0 #9ed6ff, -2px -4px 0 #9ed6ff, -2px -3px 0 #9ed6ff, -2px -2px 0 #9ed6ff, -2px -1px 0 #9ed6ff, -2px 0px 0 #9ed6ff, -2px 1px 0 #9ed6ff, -2px 2px 0 #9ed6ff, -2px 3px 0 #9ed6ff, -2px 4px 0 #9ed6ff, -1px -4px 0 #9ed6ff, -1px -3px 0 #9ed6ff, -1px -2px 0 #9ed6ff, -1px -1px 0 #9ed6ff, -1px 0px 0 #9ed6ff, -1px 1px 0 #9ed6ff, -1px 2px 0 #9ed6ff, -1px 3px 0 #9ed6ff, -1px 4px 0 #9ed6ff, 0px -4px 0 #9ed6ff, 0px -3px 0 #9ed6ff, 0px -2px 0 #9ed6ff, 0px -1px 0 #9ed6ff, 0px 0px 0 #9ed6ff, 0px 1px 0 #9ed6ff, 0px 2px 0 #9ed6ff, 0px 3px 0 #9ed6ff, 0px 4px 0 #9ed6ff, 1px -4px 0 #9ed6ff, 1px -3px 0 #9ed6ff, 1px -2px 0 #9ed6ff, 1px -1px 0 #9ed6ff, 1px 0px 0 #9ed6ff, 1px 1px 0 #9ed6ff, 1px 2px 0 #9ed6ff, 1px 3px 0 #9ed6ff, 1px 4px 0 #9ed6ff, 2px -4px 0 #9ed6ff, 2px -3px 0 #9ed6ff, 2px -2px 0 #9ed6ff, 2px -1px 0 #9ed6ff, 2px 0px 0 #9ed6ff, 2px 1px 0 #9ed6ff, 2px 2px 0 #9ed6ff, 2px 3px 0 #9ed6ff, 2px 4px 0 #9ed6ff, 3px -4px 0 #9ed6ff, 3px -3px 0 #9ed6ff, 3px -2px 0 #9ed6ff, 3px -1px 0 #9ed6ff, 3px 0px 0 #9ed6ff, 3px 1px 0 #9ed6ff, 3px 2px 0 #9ed6ff, 3px 3px 0 #9ed6ff, 3px 4px 0 #9ed6ff, 4px -4px 0 #9ed6ff, 4px -3px 0 #9ed6ff, 4px -2px 0 #9ed6ff, 4px -1px 0 #9ed6ff, 4px 0px 0 #9ed6ff, 4px 1px 0 #9ed6ff, 4px 2px 0 #9ed6ff, 4px 3px 0 #9ed6ff, 4px 4px 0 #9ed6ff; }
75% { text-shadow: -4px -4px 0 #3daee9, -4px -3px 0 #3daee9, -4px -2px 0 #3daee9, -4px -1px 0 #3daee9, -4px 0px 0 #3daee9, -4px 1px 0 #3daee9, -4px 2px 0 #3daee9, -4px 3px 0 #3daee9, -4px 4px 0 #3daee9, -3px -4px 0 #3daee9, -3px -3px 0 #3daee9, -3px -2px 0 #3daee9, -3px -1px 0 #3daee9, -3px 0px 0 #3daee9, -3px 1px 0 #3daee9, -3px 2px 0 #3daee9, -3px 3px 0 #3daee9, -3px 4px 0 #3daee9, -2px -4px 0 #3daee9, -2px -3px 0 #3daee9, -2px -2px 0 #3daee9, -2px -1px 0 #3daee9, -2px 0px 0 #3daee9, -2px 1px 0 #3daee9, -2px 2px 0 #3daee9, -2px 3px 0 #3daee9, -2px 4px 0 #3daee9, -1px -4px 0 #3daee9, -1px -3px 0 #3daee9, -1px -2px 0 #3daee9, -1px -1px 0 #3daee9, -1px 0px 0 #3daee9, -1px 1px 0 #3daee9, -1px 2px 0 #3daee9, -1px 3px 0 #3daee9, -1px 4px 0 #3daee9, 0px -4px 0 #3daee9, 0px -3px 0 #3daee9, 0px -2px 0 #3daee9, 0px -1px 0 #3daee9, 0px 0px 0 #3daee9, 0px 1px 0 #3daee9, 0px 2px 0 #3daee9, 0px 3px 0 #3daee9, 0px 4px 0 #3daee9, 1px -4px 0 #3daee9, 1px -3px 0 #3daee9, 1px -2px 0 #3daee9, 1px -1px 0 #3daee9, 1px 0px 0 #3daee9, 1px 1px 0 #3daee9, 1px 2px 0 #3daee9, 1px 3px 0 #3daee9, 1px 4px 0 #3daee9, 2px -4px 0 #3daee9, 2px -3px 0 #3daee9, 2px -2px 0 #3daee9, 2px -1px 0 #3daee9, 2px 0px 0 #3daee9, 2px 1px 0 #3daee9, 2px 2px 0 #3daee9, 2px 3px 0 #3daee9, 2px 4px 0 #3daee9, 3px -4px 0 #3daee9, 3px -3px 0 #3daee9, 3px -2px 0 #3daee9, 3px -1px 0 #3daee9, 3px 0px 0 #3daee9, 3px 1px 0 #3daee9, 3px 2px 0 #3daee9, 3px 3px 0 #3daee9, 3px 4px 0 #3daee9, 4px -4px 0 #3daee9, 4px -3px 0 #3daee9, 4px -2px 0 #3daee9, 4px -1px 0 #3daee9, 4px 0px 0 #3daee9, 4px 1px 0 #3daee9, 4px 2px 0 #3daee9, 4px 3px 0 #3daee9, 4px 4px 0 #3daee9; }
100% { text-shadow: -4px -4px 0 #1d99f3, -4px -3px 0 #1d99f3, -4px -2px 0 #1d99f3, -4px -1px 0 #1d99f3, -4px 0px 0 #1d99f3, -4px 1px 0 #1d99f3, -4px 2px 0 #1d99f3, -4px 3px 0 #1d99f3, -4px 4px 0 #1d99f3, -3px -4px 0 #1d99f3, -3px -3px 0 #1d99f3, -3px -2px 0 #1d99f3, -3px -1px 0 #1d99f3, -3px 0px 0 #1d99f3, -3px 1px 0 #1d99f3, -3px 2px 0 #1d99f3, -3px 3px 0 #1d99f3, -3px 4px 0 #1d99f3, -2px -4px 0 #1d99f3, -2px -3px 0 #1d99f3, -2px -2px 0 #1d99f3, -2px -1px 0 #1d99f3, -2px 0px 0 #1d99f3, -2px 1px 0 #1d99f3, -2px 2px 0 #1d99f3, -2px 3px 0 #1d99f3, -2px 4px 0 #1d99f3, -1px -4px 0 #1d99f3, -1px -3px 0 #1d99f3, -1px -2px 0 #1d99f3, -1px -1px 0 #1d99f3, -1px 0px 0 #1d99f3, -1px 1px 0 #1d99f3, -1px 2px 0 #1d99f3, -1px 3px 0 #1d99f3, -1px 4px 0 #1d99f3, 0px -4px 0 #1d99f3, 0px -3px 0 #1d99f3, 0px -2px 0 #1d99f3, 0px -1px 0 #1d99f3, 0px 0px 0 #1d99f3, 0px 1px 0 #1d99f3, 0px 2px 0 #1d99f3, 0px 3px 0 #1d99f3, 0px 4px 0 #1d99f3, 1px -4px 0 #1d99f3, 1px -3px 0 #1d99f3, 1px -2px 0 #1d99f3, 1px -1px 0 #1d99f3, 1px 0px 0 #1d99f3, 1px 1px 0 #1d99f3, 1px 2px 0 #1d99f3, 1px 3px 0 #1d99f3, 1px 4px 0 #1d99f3, 2px -4px 0 #1d99f3, 2px -3px 0 #1d99f3, 2px -2px 0 #1d99f3, 2px -1px 0 #1d99f3, 2px 0px 0 #1d99f3, 2px 1px 0 #1d99f3, 2px 2px 0 #1d99f3, 2px 3px 0 #1d99f3, 2px 4px 0 #1d99f3, 3px -4px 0 #1d99f3, 3px -3px 0 #1d99f3, 3px -2px 0 #1d99f3, 3px -1px 0 #1d99f3, 3px 0px 0 #1d99f3, 3px 1px 0 #1d99f3, 3px 2px 0 #1d99f3, 3px 3px 0 #1d99f3, 3px 4px 0 #1d99f3, 4px -4px 0 #1d99f3, 4px -3px 0 #1d99f3, 4px -2px 0 #1d99f3, 4px -1px 0 #1d99f3, 4px 0px 0 #1d99f3, 4px 1px 0 #1d99f3, 4px 2px 0 #1d99f3, 4px 3px 0 #1d99f3, 4px 4px 0 #1d99f3; }
}
@keyframes sitenamehover {
0% { text-shadow: -4px -4px 0 #1d99f3, -4px -3px 0 #1d99f3, -4px -2px 0 #1d99f3, -4px -1px 0 #1d99f3, -4px 0px 0 #1d99f3, -4px 1px 0 #1d99f3, -4px 2px 0 #1d99f3, -4px 3px 0 #1d99f3, -4px 4px 0 #1d99f3, -3px -4px 0 #1d99f3, -3px -3px 0 #1d99f3, -3px -2px 0 #1d99f3, -3px -1px 0 #1d99f3, -3px 0px 0 #1d99f3, -3px 1px 0 #1d99f3, -3px 2px 0 #1d99f3, -3px 3px 0 #1d99f3, -3px 4px 0 #1d99f3, -2px -4px 0 #1d99f3, -2px -3px 0 #1d99f3, -2px -2px 0 #1d99f3, -2px -1px 0 #1d99f3, -2px 0px 0 #1d99f3, -2px 1px 0 #1d99f3, -2px 2px 0 #1d99f3, -2px 3px 0 #1d99f3, -2px 4px 0 #1d99f3, -1px -4px 0 #1d99f3, -1px -3px 0 #1d99f3, -1px -2px 0 #1d99f3, -1px -1px 0 #1d99f3, -1px 0px 0 #1d99f3, -1px 1px 0 #1d99f3, -1px 2px 0 #1d99f3, -1px 3px 0 #1d99f3, -1px 4px 0 #1d99f3, 0px -4px 0 #1d99f3, 0px -3px 0 #1d99f3, 0px -2px 0 #1d99f3, 0px -1px 0 #1d99f3, 0px 0px 0 #1d99f3, 0px 1px 0 #1d99f3, 0px 2px 0 #1d99f3, 0px 3px 0 #1d99f3, 0px 4px 0 #1d99f3, 1px -4px 0 #1d99f3, 1px -3px 0 #1d99f3, 1px -2px 0 #1d99f3, 1px -1px 0 #1d99f3, 1px 0px 0 #1d99f3, 1px 1px 0 #1d99f3, 1px 2px 0 #1d99f3, 1px 3px 0 #1d99f3, 1px 4px 0 #1d99f3, 2px -4px 0 #1d99f3, 2px -3px 0 #1d99f3, 2px -2px 0 #1d99f3, 2px -1px 0 #1d99f3, 2px 0px 0 #1d99f3, 2px 1px 0 #1d99f3, 2px 2px 0 #1d99f3, 2px 3px 0 #1d99f3, 2px 4px 0 #1d99f3, 3px -4px 0 #1d99f3, 3px -3px 0 #1d99f3, 3px -2px 0 #1d99f3, 3px -1px 0 #1d99f3, 3px 0px 0 #1d99f3, 3px 1px 0 #1d99f3, 3px 2px 0 #1d99f3, 3px 3px 0 #1d99f3, 3px 4px 0 #1d99f3, 4px -4px 0 #1d99f3, 4px -3px 0 #1d99f3, 4px -2px 0 #1d99f3, 4px -1px 0 #1d99f3, 4px 0px 0 #1d99f3, 4px 1px 0 #1d99f3, 4px 2px 0 #1d99f3, 4px 3px 0 #1d99f3, 4px 4px 0 #1d99f3; }
25% { text-shadow: -4px -4px 0 #3daee9, -4px -3px 0 #3daee9, -4px -2px 0 #3daee9, -4px -1px 0 #3daee9, -4px 0px 0 #3daee9, -4px 1px 0 #3daee9, -4px 2px 0 #3daee9, -4px 3px 0 #3daee9, -4px 4px 0 #3daee9, -3px -4px 0 #3daee9, -3px -3px 0 #3daee9, -3px -2px 0 #3daee9, -3px -1px 0 #3daee9, -3px 0px 0 #3daee9, -3px 1px 0 #3daee9, -3px 2px 0 #3daee9, -3px 3px 0 #3daee9, -3px 4px 0 #3daee9, -2px -4px 0 #3daee9, -2px -3px 0 #3daee9, -2px -2px 0 #3daee9, -2px -1px 0 #3daee9, -2px 0px 0 #3daee9, -2px 1px 0 #3daee9, -2px 2px 0 #3daee9, -2px 3px 0 #3daee9, -2px 4px 0 #3daee9, -1px -4px 0 #3daee9, -1px -3px 0 #3daee9, -1px -2px 0 #3daee9, -1px -1px 0 #3daee9, -1px 0px 0 #3daee9, -1px 1px 0 #3daee9, -1px 2px 0 #3daee9, -1px 3px 0 #3daee9, -1px 4px 0 #3daee9, 0px -4px 0 #3daee9, 0px -3px 0 #3daee9, 0px -2px 0 #3daee9, 0px -1px 0 #3daee9, 0px 0px 0 #3daee9, 0px 1px 0 #3daee9, 0px 2px 0 #3daee9, 0px 3px 0 #3daee9, 0px 4px 0 #3daee9, 1px -4px 0 #3daee9, 1px -3px 0 #3daee9, 1px -2px 0 #3daee9, 1px -1px 0 #3daee9, 1px 0px 0 #3daee9, 1px 1px 0 #3daee9, 1px 2px 0 #3daee9, 1px 3px 0 #3daee9, 1px 4px 0 #3daee9, 2px -4px 0 #3daee9, 2px -3px 0 #3daee9, 2px -2px 0 #3daee9, 2px -1px 0 #3daee9, 2px 0px 0 #3daee9, 2px 1px 0 #3daee9, 2px 2px 0 #3daee9, 2px 3px 0 #3daee9, 2px 4px 0 #3daee9, 3px -4px 0 #3daee9, 3px -3px 0 #3daee9, 3px -2px 0 #3daee9, 3px -1px 0 #3daee9, 3px 0px 0 #3daee9, 3px 1px 0 #3daee9, 3px 2px 0 #3daee9, 3px 3px 0 #3daee9, 3px 4px 0 #3daee9, 4px -4px 0 #3daee9, 4px -3px 0 #3daee9, 4px -2px 0 #3daee9, 4px -1px 0 #3daee9, 4px 0px 0 #3daee9, 4px 1px 0 #3daee9, 4px 2px 0 #3daee9, 4px 3px 0 #3daee9, 4px 4px 0 #3daee9; }
50% { text-shadow: -4px -4px 0 #9ed6ff, -4px -3px 0 #9ed6ff, -4px -2px 0 #9ed6ff, -4px -1px 0 #9ed6ff, -4px 0px 0 #9ed6ff, -4px 1px 0 #9ed6ff, -4px 2px 0 #9ed6ff, -4px 3px 0 #9ed6ff, -4px 4px 0 #9ed6ff, -3px -4px 0 #9ed6ff, -3px -3px 0 #9ed6ff, -3px -2px 0 #9ed6ff, -3px -1px 0 #9ed6ff, -3px 0px 0 #9ed6ff, -3px 1px 0 #9ed6ff, -3px 2px 0 #9ed6ff, -3px 3px 0 #9ed6ff, -3px 4px 0 #9ed6ff, -2px -4px 0 #9ed6ff, -2px -3px 0 #9ed6ff, -2px -2px 0 #9ed6ff, -2px -1px 0 #9ed6ff, -2px 0px 0 #9ed6ff, -2px 1px 0 #9ed6ff, -2px 2px 0 #9ed6ff, -2px 3px 0 #9ed6ff, -2px 4px 0 #9ed6ff, -1px -4px 0 #9ed6ff, -1px -3px 0 #9ed6ff, -1px -2px 0 #9ed6ff, -1px -1px 0 #9ed6ff, -1px 0px 0 #9ed6ff, -1px 1px 0 #9ed6ff, -1px 2px 0 #9ed6ff, -1px 3px 0 #9ed6ff, -1px 4px 0 #9ed6ff, 0px -4px 0 #9ed6ff, 0px -3px 0 #9ed6ff, 0px -2px 0 #9ed6ff, 0px -1px 0 #9ed6ff, 0px 0px 0 #9ed6ff, 0px 1px 0 #9ed6ff, 0px 2px 0 #9ed6ff, 0px 3px 0 #9ed6ff, 0px 4px 0 #9ed6ff, 1px -4px 0 #9ed6ff, 1px -3px 0 #9ed6ff, 1px -2px 0 #9ed6ff, 1px -1px 0 #9ed6ff, 1px 0px 0 #9ed6ff, 1px 1px 0 #9ed6ff, 1px 2px 0 #9ed6ff, 1px 3px 0 #9ed6ff, 1px 4px 0 #9ed6ff, 2px -4px 0 #9ed6ff, 2px -3px 0 #9ed6ff, 2px -2px 0 #9ed6ff, 2px -1px 0 #9ed6ff, 2px 0px 0 #9ed6ff, 2px 1px 0 #9ed6ff, 2px 2px 0 #9ed6ff, 2px 3px 0 #9ed6ff, 2px 4px 0 #9ed6ff, 3px -4px 0 #9ed6ff, 3px -3px 0 #9ed6ff, 3px -2px 0 #9ed6ff, 3px -1px 0 #9ed6ff, 3px 0px 0 #9ed6ff, 3px 1px 0 #9ed6ff, 3px 2px 0 #9ed6ff, 3px 3px 0 #9ed6ff, 3px 4px 0 #9ed6ff, 4px -4px 0 #9ed6ff, 4px -3px 0 #9ed6ff, 4px -2px 0 #9ed6ff, 4px -1px 0 #9ed6ff, 4px 0px 0 #9ed6ff, 4px 1px 0 #9ed6ff, 4px 2px 0 #9ed6ff, 4px 3px 0 #9ed6ff, 4px 4px 0 #9ed6ff; }
75% { text-shadow: -4px -4px 0 #3daee9, -4px -3px 0 #3daee9, -4px -2px 0 #3daee9, -4px -1px 0 #3daee9, -4px 0px 0 #3daee9, -4px 1px 0 #3daee9, -4px 2px 0 #3daee9, -4px 3px 0 #3daee9, -4px 4px 0 #3daee9, -3px -4px 0 #3daee9, -3px -3px 0 #3daee9, -3px -2px 0 #3daee9, -3px -1px 0 #3daee9, -3px 0px 0 #3daee9, -3px 1px 0 #3daee9, -3px 2px 0 #3daee9, -3px 3px 0 #3daee9, -3px 4px 0 #3daee9, -2px -4px 0 #3daee9, -2px -3px 0 #3daee9, -2px -2px 0 #3daee9, -2px -1px 0 #3daee9, -2px 0px 0 #3daee9, -2px 1px 0 #3daee9, -2px 2px 0 #3daee9, -2px 3px 0 #3daee9, -2px 4px 0 #3daee9, -1px -4px 0 #3daee9, -1px -3px 0 #3daee9, -1px -2px 0 #3daee9, -1px -1px 0 #3daee9, -1px 0px 0 #3daee9, -1px 1px 0 #3daee9, -1px 2px 0 #3daee9, -1px 3px 0 #3daee9, -1px 4px 0 #3daee9, 0px -4px 0 #3daee9, 0px -3px 0 #3daee9, 0px -2px 0 #3daee9, 0px -1px 0 #3daee9, 0px 0px 0 #3daee9, 0px 1px 0 #3daee9, 0px 2px 0 #3daee9, 0px 3px 0 #3daee9, 0px 4px 0 #3daee9, 1px -4px 0 #3daee9, 1px -3px 0 #3daee9, 1px -2px 0 #3daee9, 1px -1px 0 #3daee9, 1px 0px 0 #3daee9, 1px 1px 0 #3daee9, 1px 2px 0 #3daee9, 1px 3px 0 #3daee9, 1px 4px 0 #3daee9, 2px -4px 0 #3daee9, 2px -3px 0 #3daee9, 2px -2px 0 #3daee9, 2px -1px 0 #3daee9, 2px 0px 0 #3daee9, 2px 1px 0 #3daee9, 2px 2px 0 #3daee9, 2px 3px 0 #3daee9, 2px 4px 0 #3daee9, 3px -4px 0 #3daee9, 3px -3px 0 #3daee9, 3px -2px 0 #3daee9, 3px -1px 0 #3daee9, 3px 0px 0 #3daee9, 3px 1px 0 #3daee9, 3px 2px 0 #3daee9, 3px 3px 0 #3daee9, 3px 4px 0 #3daee9, 4px -4px 0 #3daee9, 4px -3px 0 #3daee9, 4px -2px 0 #3daee9, 4px -1px 0 #3daee9, 4px 0px 0 #3daee9, 4px 1px 0 #3daee9, 4px 2px 0 #3daee9, 4px 3px 0 #3daee9, 4px 4px 0 #3daee9; }
100% { text-shadow: -4px -4px 0 #1d99f3, -4px -3px 0 #1d99f3, -4px -2px 0 #1d99f3, -4px -1px 0 #1d99f3, -4px 0px 0 #1d99f3, -4px 1px 0 #1d99f3, -4px 2px 0 #1d99f3, -4px 3px 0 #1d99f3, -4px 4px 0 #1d99f3, -3px -4px 0 #1d99f3, -3px -3px 0 #1d99f3, -3px -2px 0 #1d99f3, -3px -1px 0 #1d99f3, -3px 0px 0 #1d99f3, -3px 1px 0 #1d99f3, -3px 2px 0 #1d99f3, -3px 3px 0 #1d99f3, -3px 4px 0 #1d99f3, -2px -4px 0 #1d99f3, -2px -3px 0 #1d99f3, -2px -2px 0 #1d99f3, -2px -1px 0 #1d99f3, -2px 0px 0 #1d99f3, -2px 1px 0 #1d99f3, -2px 2px 0 #1d99f3, -2px 3px 0 #1d99f3, -2px 4px 0 #1d99f3, -1px -4px 0 #1d99f3, -1px -3px 0 #1d99f3, -1px -2px 0 #1d99f3, -1px -1px 0 #1d99f3, -1px 0px 0 #1d99f3, -1px 1px 0 #1d99f3, -1px 2px 0 #1d99f3, -1px 3px 0 #1d99f3, -1px 4px 0 #1d99f3, 0px -4px 0 #1d99f3, 0px -3px 0 #1d99f3, 0px -2px 0 #1d99f3, 0px -1px 0 #1d99f3, 0px 0px 0 #1d99f3, 0px 1px 0 #1d99f3, 0px 2px 0 #1d99f3, 0px 3px 0 #1d99f3, 0px 4px 0 #1d99f3, 1px -4px 0 #1d99f3, 1px -3px 0 #1d99f3, 1px -2px 0 #1d99f3, 1px -1px 0 #1d99f3, 1px 0px 0 #1d99f3, 1px 1px 0 #1d99f3, 1px 2px 0 #1d99f3, 1px 3px 0 #1d99f3, 1px 4px 0 #1d99f3, 2px -4px 0 #1d99f3, 2px -3px 0 #1d99f3, 2px -2px 0 #1d99f3, 2px -1px 0 #1d99f3, 2px 0px 0 #1d99f3, 2px 1px 0 #1d99f3, 2px 2px 0 #1d99f3, 2px 3px 0 #1d99f3, 2px 4px 0 #1d99f3, 3px -4px 0 #1d99f3, 3px -3px 0 #1d99f3, 3px -2px 0 #1d99f3, 3px -1px 0 #1d99f3, 3px 0px 0 #1d99f3, 3px 1px 0 #1d99f3, 3px 2px 0 #1d99f3, 3px 3px 0 #1d99f3, 3px 4px 0 #1d99f3, 4px -4px 0 #1d99f3, 4px -3px 0 #1d99f3, 4px -2px 0 #1d99f3, 4px -1px 0 #1d99f3, 4px 0px 0 #1d99f3, 4px 1px 0 #1d99f3, 4px 2px 0 #1d99f3, 4px 3px 0 #1d99f3, 4px 4px 0 #1d99f3; }
}
.logo-c { text-shadow: -4px -4px 0 #1d99f3, -4px -3px 0 #1d99f3, -4px -2px 0 #1d99f3, -4px -1px 0 #1d99f3, -4px 0px 0 #1d99f3, -4px 1px 0 #1d99f3, -4px 2px 0 #1d99f3, -4px 3px 0 #1d99f3, -4px 4px 0 #1d99f3, -3px -4px 0 #1d99f3, -3px -3px 0 #1d99f3, -3px -2px 0 #1d99f3, -3px -1px 0 #1d99f3, -3px 0px 0 #1d99f3, -3px 1px 0 #1d99f3, -3px 2px 0 #1d99f3, -3px 3px 0 #1d99f3, -3px 4px 0 #1d99f3, -2px -4px 0 #1d99f3, -2px -3px 0 #1d99f3, -2px -2px 0 #1d99f3, -2px -1px 0 #1d99f3, -2px 0px 0 #1d99f3, -2px 1px 0 #1d99f3, -2px 2px 0 #1d99f3, -2px 3px 0 #1d99f3, -2px 4px 0 #1d99f3, -1px -4px 0 #1d99f3, -1px -3px 0 #1d99f3, -1px -2px 0 #1d99f3, -1px -1px 0 #1d99f3, -1px 0px 0 #1d99f3, -1px 1px 0 #1d99f3, -1px 2px 0 #1d99f3, -1px 3px 0 #1d99f3, -1px 4px 0 #1d99f3, 0px -4px 0 #1d99f3, 0px -3px 0 #1d99f3, 0px -2px 0 #1d99f3, 0px -1px 0 #1d99f3, 0px 0px 0 #1d99f3, 0px 1px 0 #1d99f3, 0px 2px 0 #1d99f3, 0px 3px 0 #1d99f3, 0px 4px 0 #1d99f3, 1px -4px 0 #1d99f3, 1px -3px 0 #1d99f3, 1px -2px 0 #1d99f3, 1px -1px 0 #1d99f3, 1px 0px 0 #1d99f3, 1px 1px 0 #1d99f3, 1px 2px 0 #1d99f3, 1px 3px 0 #1d99f3, 1px 4px 0 #1d99f3, 2px -4px 0 #1d99f3, 2px -3px 0 #1d99f3, 2px -2px 0 #1d99f3, 2px -1px 0 #1d99f3, 2px 0px 0 #1d99f3, 2px 1px 0 #1d99f3, 2px 2px 0 #1d99f3, 2px 3px 0 #1d99f3, 2px 4px 0 #1d99f3, 3px -4px 0 #1d99f3, 3px -3px 0 #1d99f3, 3px -2px 0 #1d99f3, 3px -1px 0 #1d99f3, 3px 0px 0 #1d99f3, 3px 1px 0 #1d99f3, 3px 2px 0 #1d99f3, 3px 3px 0 #1d99f3, 3px 4px 0 #1d99f3, 4px -4px 0 #1d99f3, 4px -3px 0 #1d99f3, 4px -2px 0 #1d99f3, 4px -1px 0 #1d99f3, 4px 0px 0 #1d99f3, 4px 1px 0 #1d99f3, 4px 2px 0 #1d99f3, 4px 3px 0 #1d99f3, 4px 4px 0 #1d99f3; }

4
public/css/modal.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,4 @@
.modal-header, .modal-body, .modal-footer { color: #fcfcfc; }
.modal-header { background: linear-gradient(to bottom, #b16cce 0%, #d898f3 34%, #cb81ea 100%); }
.modal-body { background-color: #4d4d4d; }
.modal-footer { background-color: #31363b; }

1
public/css/modal_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
.modal-header { background: linear-gradient(to bottom, #f31de8 0%, #ea81e8 34%, #e93de9 100%); }

1
public/css/modal_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
.modal-header { background: linear-gradient(to bottom, #1d99f3 0%, #6ec0fb 34%, #3daee9 100%); }

12
public/css/navbar.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,12 @@
.bg-dark { background: radial-gradient(farthest-corner at 50% 85%, #9b59b6 0%, #232629 100%); border: 2px solid #cb81ea; box-shadow: 0 0 7px 3px #b16cce; }
.navbar { padding: 0px; }
.navbar-toggler { border: 0px solid transparent; }
.navbar-nav .dropdown-menu { background-color: #31363b; color: #fcfcfc; border: 2px solid #cb81ea; box-shadow: 0 0 7px 3px #b16cce; }
.dropdown-item { color: #fcfcfc; }
.dropdown-item.active, .dropdown-item:active, .dropdown-item:hover, .dropdown-item:focus { color: #fcfcfc; background-color: #cb81ea; }
.navbar-brand { padding: 5px; }
.navbar-brand, .nav-item { transition: background 0.3s; border-radius: 2px; cursor: pointer; }
.navbar-brand:hover, .nav-item:hover { background-color: #61237c; }
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { border-color: #46195a; }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { color: #fcfcfc; background-color: #b16cce; border-color: #46195a; }
.nav-tabs { border-bottom: 1px solid #cb81ea; }

7
public/css/navbar_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,7 @@
.bg-dark { background: radial-gradient(farthest-corner at 50% 85%, #db34d3 0%, #232629 100%); border: 2px solid #e93de9; box-shadow: 0 0 7px 3px #f31de8; }
.navbar-nav .dropdown-menu { border: 2px solid #e93de9; box-shadow: 0 0 7px 3px #f31de8; }
.dropdown-item.active, .dropdown-item:active, .dropdown-item:hover, .dropdown-item:focus { background-color: #e93de9; }
.navbar-brand:hover, .nav-item:hover { background-color: #b459b6; }
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { border-color: #7d2069; }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { background-color: #f31de8; border-color: #7d2069; }
.nav-tabs { border-bottom: 1px solid #e93de9; }

7
public/css/navbar_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,7 @@
.bg-dark { background: radial-gradient(farthest-corner at 50% 85%, #3498db 0%, #232629 100%); border: 2px solid #3daee9; box-shadow: 0 0 7px 3px #1d99f3; }
.navbar-nav .dropdown-menu { border: 2px solid #3daee9; box-shadow: 0 0 7px 3px #1d99f3; }
.dropdown-item.active, .dropdown-item:active, .dropdown-item:hover, .dropdown-item:focus { background-color: #3daee9; }
.navbar-brand:hover, .nav-item:hover { background-color: #2980b9; }
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { border-color: #205e7d; }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { background-color: #1d99f3; border-color: #205e7d; }
.nav-tabs { border-bottom: 1px solid #3daee9; }

28
public/css/pagination.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,28 @@
.page-link {
background: linear-gradient(to bottom, #57229c 0%, #6b4386 34%, #2d1a46 100%);
}
.page-link, .page-item .disabled {
text-align: center;
color: #fcfcfc;
padding: 8px 20px;
font-size: 28px;
border-bottom: solid 2px #cb81ea;
cursor: pointer;
transition: background 0.3s, color 0.3s;
margin: auto;
}
.page-link > a { color: #fcfcfc; }
.page-link > a:hover { text-decoration: none; }
.page-link:hover {
color: #fcfcfc;
background: linear-gradient(to bottom, #6c29b9 0%, #916ead 34%, #5d2b8b 100%);
}
.page-item.disabled > .page-link { color: #fcfcfc; background: linear-gradient(to bottom, #4d4d4d 0%, #727272 34%, #495051 100%); border-color: #b16cce; }
.page-item.active > .page-link { color: #fcfcfc; background: linear-gradient(to bottom, #b16cce 0%, #e4b4f8 34%, #9b59b6 100%); border-color: #b16cce; }
.page-item.active > .page-link:hover { color: #fcfcfc; background: linear-gradient(to bottom, #cb81ea 0%, #f1d0ff 34%, #d898f3 100%); }
.pagination { margin: auto; padding: 8px; }

6
public/css/pagination_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,6 @@
.page-link { background: linear-gradient(to bottom, #9c2296 0%, #864386 34%, #421a46 100%); }
.page-link, .page-item .disabled { border-bottom: solid 2px #e93de9; }
.page-link:hover { background: linear-gradient(to bottom, #b929ad 0%, #ad6ea8 34%, #832b8b 100%); }
.page-item.disabled > .page-link { border-color: #f31de8; }
.page-item.active > .page-link { background: linear-gradient(to bottom, #f31de8 0%, #e599e5 34%, #db34d3 100%); border-color: #f31de8; }
.page-item.active > .page-link:hover { background: linear-gradient(to bottom, #e93de9 0%, #ffe6f9 34%, #ea81e8 100%); }

6
public/css/pagination_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,6 @@
.page-link { background: linear-gradient(to bottom, #22699c 0%, #436a86 34%, #1a3746 100%); }
.page-link, .page-item .disabled { border-bottom: solid 2px #3daee9; }
.page-link:hover { background: linear-gradient(to bottom, #2980b9 0%, #6e93ad 34%, #2b6b8b 100%); }
.page-item.disabled > .page-link { border-color: #1d99f3; }
.page-item.active > .page-link { background: linear-gradient(to bottom, #1d99f3 0%, #8bb6d6 34%, #3498db 100%); border-color: #1d99f3; }
.page-item.active > .page-link:hover { background: linear-gradient(to bottom, #3daee9 0%, #9ed6ff 34%, #6ec0fb 100%); }

5
public/css/popper.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

5
public/css/scroll.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,5 @@
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-thumb { background: #cb81ea; transition: background 0.3s; }
::-webkit-scrollbar-thumb:hover { background: #e4b4f8; }
::-webkit-scrollbar-thumb:active { background: #46195a; }
::-webkit-scrollbar-track { background-color: #fcfcfc; background: #232629; }

3
public/css/scroll_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,3 @@
::-webkit-scrollbar-thumb { background: #e93de9; }
::-webkit-scrollbar-thumb:hover { background: #e599e5; }
::-webkit-scrollbar-thumb:active { background: #7d2069; }

3
public/css/scroll_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,3 @@
::-webkit-scrollbar-thumb { background: #3daee9; }
::-webkit-scrollbar-thumb:hover { background: #8bb6d6; }
::-webkit-scrollbar-thumb:active { background: #205e7d; }

1
public/css/select.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
.custom-select { background-color: #232629; border: 1px solid #220a2c; color: #fcfcfc; }

1
public/css/select_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
.custom-select { border: 1px solid #5e345c; }

1
public/css/select_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
.custom-select { border: 1px solid #34495e; }

2
public/css/sidemenu.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,2 @@
.sidemenu { border: 2px solid #cb81ea; box-shadow: 0 0 7px 3px #b16cce; }
.nav-pills .nav-link { border-radius: 0px; }

1
public/css/sidemenu_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
.sidemenu { border: 2px solid #e93de9; box-shadow: 0 0 7px 3px #f31de8; }

1
public/css/sidemenu_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
.sidemenu { border: 2px solid #3daee9; box-shadow: 0 0 7px 3px #1d99f3; }

9
public/css/table.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,9 @@
.table-dark {
color: #fcfcfc;
background-color: #4d4d4d;
border: 2px solid #cb81ea;
transition: background-color 0.3s;
}
.table-dark th, .table-dark td, .table-dark thead th { border-color: #cb81ea; }
.table-dark.table-hover tbody tr { transition: background-color 0.3s; background-color: #4d4d4d; }
.table-dark.table-hover tbody tr:hover { color: #fcfcfc; background-color: #61237c; }

3
public/css/table_f.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,3 @@
.table-dark { border: 2px solid #e93de9; }
.table-dark th, .table-dark td, .table-dark thead th { border-color: #e93de9; }
.table-dark.table-hover tbody tr:hover { background-color: #b459b6; }

3
public/css/table_m.css vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,3 @@
.table-dark { border: 2px solid #3daee9; }
.table-dark th, .table-dark td, .table-dark thead th { border-color: #3daee9; }
.table-dark.table-hover tbody tr:hover { background-color: #2980b9; }

78937
public/js/app.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

7
public/js/bootstrap.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

2
public/js/jquery.js vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

ファイルの表示

@ -17,14 +17,10 @@ try {
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
Vue.component('appbar', require('./components/appbar.vue').default);
Vue.component('comments', require('./components/comments.vue').default);
Vue.component('content-type', require('./components/contenttype.vue').default);
Vue.component('delete-content', require('./components/deletecontent.vue').default);
Vue.component('delete-video', require('./components/deletevideo.vue').default);
Vue.component('delete-game', require('./components/deletegame.vue').default);
Vue.component('discord', require('./components/discord.vue').default);
Vue.component('gender', require('./components/gender.vue').default);
const app = new Vue({ el: '#app' });

ファイルの表示

@ -1,15 +0,0 @@
<template>
<span>
<bash />
<note />
</span>
</template>
<script>
import Bash from './bash';
import Note from './note';
export default {
components: { Bash, Note }
}
</script>

ファイルの表示

@ -1,237 +0,0 @@
<template>
<span>
<a href="#" @click="show = true"><img class="icon" src="/img/bash/app_icon.png" width="50" height="50" alt="ロリ端末" /></a>
<span v-if="show">
<label :for="`konsoleinput-${output.length-1}`">
<vue-draggable-resizable style="border: 0px solid #232629;" :drag-handle="'.drag-handle'" class-name-handle="resize-handle" class="konsoleuser" :x="-50" :y="-100" :z="99999999">
<div style="width: 100%; position: relative;">
<div class="drag-handle-left"></div>
<div class="drag-handle">ロリ端末</div>
<div class="drag-handle-min"></div>
<div class="drag-handle-max"></div>
<div class="drag-handle-right" @click="show = false"></div>
</div>
<div class="konsole_left"></div>
<div style="padding: 5px; height: 100%; overflow: scroll;">
<div v-for="(o, i) in output" :key="`output-${i}`">
<div v-html="o"></div>
<div class="row">
<div class="col-auto" style="padding-right: 6px;">shiken@technicalsuwako.jp:/$</div>
<div class="col" style="padding-left: 0px;">
<input :ref="`konsoleinput-${i}`" :id="`konsoleinput-${i}`" class="konsole_input" type="text" :disabled="i !== output.length-1" v-model="cmd[i]" @keyup.enter="exec(i)" />
</div>
</div>
</div>
</div>
<div class="konsole_right"></div>
<div class="konsole_bottom_left"></div>
<div class="konsole_bottom"></div>
<div class="konsole_bottom_right"></div>
</vue-draggable-resizable>
</label>
</span>
</span>
</template>
<script>
import VueDraggableResizable from 'vue-draggable-resizable';
import 'vue-draggable-resizable/dist/VueDraggableResizable.css';
Vue.component('vue-draggable-resizable', VueDraggableResizable);
export default {
data: function () {
return {
cmd: [''],
output: ['ロリコマンドラインですね〜♡'],
show: false,
width: 0,
height: 0,
x: 0,
y: 0
}
},
methods: {
onResize: function (x, y, width, height) {
this.x = x
this.y = y
this.width = width
this.height = height
},
onDrag: function (x, y) {
this.x = x
this.y = y
},
exec (i) {
axios.post('/api/rpc/bash/exec', { args: this.cmd[i] }).then(res => {
this.output.push(res.data);
this.cmd.push('');
});
}
}
}
</script>
<style scoped>
.konsole {
width: 600px;
height: 358px;
margin: auto;
color: #fcfcfc;
}
.drag-handle-left {
height: 30px;
width: 30px;
background: url('/img/bash/top_left.png') no-repeat;
position: absolute;
top: 0;
left: 0;
}
.drag-handle {
cursor: default;
height: 30px;
background: url('/img/bash/top_bg.png') repeat-x;
width: auto;
margin-left: 30px;
margin-right: 74px;
padding-top: 7px;
padding-left: 32px;
text-align: center;
font-weight: bold;
}
.drag-handle-right {
height: 30px;
width: 28px;
background: url('/img/bash/top_right.png') no-repeat;
position: absolute;
top: 0;
right: 0;
}
.drag-handle-right:hover {
background: url('/img/bash/top_right_hover.png') no-repeat;
cursor: default;
}
.drag-handle-max {
height: 30px;
width: 23px;
background: url('/img/bash/top_max.png') no-repeat;
position: absolute;
top: 0;
right: 28px;
}
.drag-handle-max:hover {
background: url('/img/bash/top_max_hover.png') no-repeat;
cursor: default;
}
.drag-handle-min {
height: 30px;
width: 23px;
background: url('/img/bash/top_min.png') no-repeat;
position: absolute;
top: 0;
right: 51px;
}
.drag-handle-min:hover {
background: url('/img/bash/top_min_hover.png') no-repeat;
cursor: default;
}
.konsole_left {
width: 2px;
background: url('/img/bash/left_bg.png') repeat-y;
position: absolute;
top: 30px;
left: 0;
height: 325px;
}
.konsole_right {
width: 2px;
background: url('/img/bash/right_bg.png') repeat-y;
position: absolute;
height: 325px;
top: 30px;
right: 0;
}
.konsoleuser { background: url('/img/bash/user_bg.png') repeat; cursor: text; }
.konsoleroot { background: url('/img/bash/root_bg.png') repeat; cursor: text; }
.vdr {
background-size: cover;
backdrop-filter: blur(17px);
font-family: "Lucida Console", Monospace, "DejaVu Sans Mono", "Courier New", MiscFixed;
font-size: 12px;
/* white-space: pre; */
color: #fcfcfc;
overflow: hidden;
position: absolute;
top: 30px;
left: 2px;
height: 316px !important;
width: 586px !important;
padding: 0;
}
.resize-handle-mr {
width: 2px;
background: url('/img/bash/right_bg.png') repeat-y;
position: absolute;
height: 325px;
top: 30px;
right: 0;
}
.konsole_bottom_left {
width: 3px;
height: 3px;
background: url('/img/bash/bottom_left.png') no-repeat;
position: absolute;
bottom: 0;
left: 0;
}
.konsole_bottom {
height: 2px;
background: url('/img/bash/bottom_bg.png') repeat-x;
position: absolute;
bottom: 0;
left: 2px;
width: 595px;
}
.konsole_bottom_right {
height: 3px;
width: 3px;
background: url('/img/bash/bottom_right.png') no-repeat;
position: absolute;
right: 0;
bottom: 0;
}
.konsole_input, .konsole_input:focus, .konsole_input:disabled {
width: 100%;
background: transparent;
border-color: transparent;
outline: none;
caret-color: #fcfcfc;
color: #fcfcfc;
line-height: 14px;
}
.icon {
transition: background 0.3s;
}
.icon:hover {
background-color:#eff0f180;
}
</style>

ファイルの表示

@ -1,226 +0,0 @@
<template>
<span>
<a href="#" @click="show = true"><img src="/img/discord.png" alt="ディスコード" /></a>
<span v-if="show">
<vue-draggable-resizable style="border: 0px solid #232629;" :drag-handle="'.drag-handle'" class-name-handle="resize-handle" class="disco" :x="-500" :y="10" :z="99999999">
<div style="width: 100%; position: relative;">
<div class="drag-handle-left"></div>
<div class="drag-handle">ディスコードハンドル</div>
<div class="drag-handle-right" @click="show = false"></div>
</div>
<div class="konsole_left"></div>
<div style="text-align: center; font-size: 18px; padding-top: 10px;">テクニカル諏訪子#3116</div>
<div style="text-align:right; line-height: 15; padding: 10px;"><button type="button" class="btn btn-popup" @click="show = false">OK</button></div>
<div class="konsole_right"></div>
<div class="konsole_bottom_left"></div>
<div class="konsole_bottom"></div>
<div class="konsole_bottom_right"></div>
</vue-draggable-resizable>
</span>
</span>
</template>
<script>
import VueDraggableResizable from 'vue-draggable-resizable';
import 'vue-draggable-resizable/dist/VueDraggableResizable.css';
Vue.component('vue-draggable-resizable', VueDraggableResizable);
export default {
data: function () {
return {
show: false,
text: (localStorage.shotanote || 'かいて〜♡'),
width: 0,
height: 0,
x: 0,
y: 0
}
},
watch: { text (x) { localStorage.shotanote = x; } },
methods: {
onResize: function (x, y, width, height) {
this.x = x
this.y = y
this.width = width
this.height = height
},
onDrag: function (x, y) {
this.x = x
this.y = y
}
}
}
</script>
<style scoped>
.konsole {
width: 600px;
height: 358px;
margin: auto;
color: #fcfcfc;
}
::-webkit-scrollbar-thumb:hover {
background: #452886;
}
.drag-handle-left {
height: 30px;
width: 30px;
background: url('/img/bash/discord_top_left.png') no-repeat;
position: absolute;
top: 0;
left: 0;
}
.drag-handle {
cursor: default;
height: 30px;
background: url('/img/bash/top_bg.png') repeat-x;
width: auto;
margin-left: 30px;
margin-right: 28px;
padding-top: 7px;
padding-right: 0px;
text-align: center;
font-weight: bold;
}
.drag-handle-right {
height: 30px;
width: 28px;
background: url('/img/bash/top_right.png') no-repeat;
position: absolute;
top: 0;
right: 0;
}
.drag-handle-right:hover {
background: url('/img/bash/top_right_hover.png') no-repeat;
cursor: default;
}
.drag-handle-max {
height: 30px;
width: 23px;
background: url('/img/bash/top_max.png') no-repeat;
position: absolute;
top: 0;
right: 28px;
}
.drag-handle-max:hover {
background: url('/img/bash/top_max_hover.png') no-repeat;
cursor: default;
}
.drag-handle-min {
height: 30px;
width: 23px;
background: url('/img/bash/top_min.png') no-repeat;
position: absolute;
top: 0;
right: 51px;
}
.drag-handle-min:hover {
background: url('/img/bash/top_min_hover.png') no-repeat;
cursor: default;
}
.konsole_left {
width: 2px;
background: url('/img/bash/left_bg.png') repeat-y;
position: absolute;
top: 30px;
left: 0;
height: 167px;
}
.konsole_right {
width: 2px;
background: url('/img/bash/right_bg.png') repeat-y;
position: absolute;
height: 167px;
top: 30px;
right: 0;
}
.disco { background-color: #252a35; }
.noter, .noter:active, .noter:focus {
background: transparent;
border: 0;
min-height: 360px;
width: 290px;
resize: none;
}
.btn {
width: 100px;
border: 1px solid #4d4d4d;
}
.btn:hover {
cursor: default;
border: 1px solid #3daee9;
}
.btn-popup {
color: #fcfcfc;
background-color: #252a35;
}
.vdr {
background-size: cover;
backdrop-filter: blur(17px);
font-family: "Lucida Console", Monospace, "DejaVu Sans Mono", "Courier New", MiscFixed;
font-size: 12px;
/* white-space: pre; */
color: #fcfcfc;
overflow: hidden;
position: absolute;
top: 30px;
left: 2px;
height: 200px !important;
width: 500px !important;
padding: 0;
}
.resize-handle-mr {
width: 2px;
background: url('/img/bash/right_bg.png') repeat-y;
position: absolute;
height: 325px;
top: 30px;
right: 0;
}
.konsole_bottom_left {
width: 3px;
height: 3px;
background: url('/img/bash/bottom_left.png') no-repeat;
position: absolute;
bottom: 0;
left: 0;
}
.konsole_bottom {
height: 2px;
background: url('/img/bash/bottom_bg.png') repeat-x;
position: absolute;
bottom: 0;
left: 2px;
width: 495px;
}
.konsole_bottom_right {
height: 3px;
width: 3px;
background: url('/img/bash/bottom_right.png') no-repeat;
position: absolute;
right: 0;
bottom: 0;
}
</style>

ファイルの表示

@ -1,235 +0,0 @@
<template>
<span>
<a href="#" @click="show = true"><img class="icon" src="/img/bash/note_icon.png" width="50" height="50" alt="ショタノート" /></a>
<span v-if="show">
<vue-draggable-resizable style="border: 0px solid #232629;" :drag-handle="'.drag-handle'" class-name-handle="resize-handle" class="shotanote" :x="50" :y="-100" :z="99999999">
<div style="width: 100%; position: relative;">
<div class="drag-handle-left"></div>
<div class="drag-handle">ショタノート</div>
<div class="drag-handle-min"></div>
<div class="drag-handle-max"></div>
<div class="drag-handle-right" @click="show = false"></div>
</div>
<div class="konsole_left"></div>
<div style="padding: 5px; color: #232629;">
<textarea cols="30" rows="10" class="noter" v-model="text"></textarea>
</div>
<div class="konsole_right"></div>
<div class="konsole_bottom_left"></div>
<div class="konsole_bottom"></div>
<div class="konsole_bottom_right"></div>
</vue-draggable-resizable>
</span>
</span>
</template>
<script>
import VueDraggableResizable from 'vue-draggable-resizable';
import 'vue-draggable-resizable/dist/VueDraggableResizable.css';
Vue.component('vue-draggable-resizable', VueDraggableResizable);
export default {
data: function () {
return {
show: false,
text: (localStorage.shotanote || 'かいて〜♡'),
width: 0,
height: 0,
x: 0,
y: 0
}
},
watch: { text (x) { localStorage.shotanote = x; } },
methods: {
onResize: function (x, y, width, height) {
this.x = x
this.y = y
this.width = width
this.height = height
},
onDrag: function (x, y) {
this.x = x
this.y = y
}
}
}
</script>
<style scoped>
.konsole {
width: 600px;
height: 358px;
margin: auto;
color: #fcfcfc;
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #7f8c8d;
}
::-webkit-scrollbar-thumb {
border-radius: 5px;
background: #ff80e0;
}
::-webkit-scrollbar-thumb:hover {
background: #452886;
}
.drag-handle-left {
height: 30px;
width: 30px;
background: url('/img/bash/note_top_left.png') no-repeat;
position: absolute;
top: 0;
left: 0;
}
.drag-handle {
cursor: default;
height: 30px;
background: url('/img/bash/top_bg.png') repeat-x;
width: auto;
margin-left: 30px;
margin-right: 74px;
padding-top: 7px;
padding-left: 26px;
text-align: center;
font-weight: bold;
}
.drag-handle-right {
height: 30px;
width: 28px;
background: url('/img/bash/top_right.png') no-repeat;
position: absolute;
top: 0;
right: 0;
}
.drag-handle-right:hover {
background: url('/img/bash/top_right_hover.png') no-repeat;
cursor: default;
}
.drag-handle-max {
height: 30px;
width: 23px;
background: url('/img/bash/top_max.png') no-repeat;
position: absolute;
top: 0;
right: 28px;
}
.drag-handle-max:hover {
background: url('/img/bash/top_max_hover.png') no-repeat;
cursor: default;
}
.drag-handle-min {
height: 30px;
width: 23px;
background: url('/img/bash/top_min.png') no-repeat;
position: absolute;
top: 0;
right: 51px;
}
.drag-handle-min:hover {
background: url('/img/bash/top_min_hover.png') no-repeat;
cursor: default;
}
.konsole_left {
width: 2px;
background: url('/img/bash/left_bg.png') repeat-y;
position: absolute;
top: 30px;
left: 0;
height: 367px;
}
.konsole_right {
width: 2px;
background: url('/img/bash/right_bg.png') repeat-y;
position: absolute;
height: 367px;
top: 30px;
right: 0;
}
.shotanote { background: url('/img/bash/note_bg.png') repeat; }
.noter, .noter:active, .noter:focus {
background: transparent;
border: 0;
min-height: 360px;
width: 290px;
resize: none;
}
.vdr {
background-size: cover;
backdrop-filter: blur(17px);
font-family: "Lucida Console", Monospace, "DejaVu Sans Mono", "Courier New", MiscFixed;
font-size: 12px;
/* white-space: pre; */
color: #fcfcfc;
overflow: hidden;
position: absolute;
top: 30px;
left: 2px;
height: 400px !important;
width: 300px !important;
padding: 0;
}
.resize-handle-mr {
width: 2px;
background: url('/img/bash/right_bg.png') repeat-y;
position: absolute;
height: 325px;
top: 30px;
right: 0;
}
.konsole_bottom_left {
width: 3px;
height: 3px;
background: url('/img/bash/bottom_left.png') no-repeat;
position: absolute;
bottom: 0;
left: 0;
}
.konsole_bottom {
height: 2px;
background: url('/img/bash/bottom_bg.png') repeat-x;
position: absolute;
bottom: 0;
left: 2px;
width: 295px;
}
.konsole_bottom_right {
height: 3px;
width: 3px;
background: url('/img/bash/bottom_right.png') no-repeat;
position: absolute;
right: 0;
bottom: 0;
}
.icon {
transition: background 0.3s;
}
.icon:hover {
background-color:#eff0f180;
}
</style>

ファイルの表示

@ -1,101 +0,0 @@
.bar {
background: linear-gradient(to bottom, $evil4 0%, $evil1 34%, $evil6 100%);
}
.bara {
background: linear-gradient(180deg, $suwa05 0, $suwa01 34%, $evil5 100%);
}
.bar, .bara {
text-align: center;
color: $white1;
padding: 5px;
font-size: 20px;
border-bottom: solid 2px $suwa03;
cursor: pointer;
transition: background 0.3s, color 0.3s;
}
.bar > a {
color: $white1;
}
.bar > a:hover {
text-decoration: none;
}
.bar:hover {
color: $white1;
background: linear-gradient(to bottom, $evil3 0%, $evil0 34%, $evil2 100%);
}
.indexborder {
border: 2px solid $suwa03;
box-shadow: 0px 0px 7px 3px $suwa04;
padding: 8px;
background-color: $black1;
}
.meta {
padding: 5px;
text-align: left;
background-color: $suwa09;
border-bottom: solid 2px $suwa03;
}
.comment {
border-top: solid 2px $suwa03;
}
.back, .comment {
padding: 4px;
background-color: $black2;
text-align: left;
}
.commentloop {
padding: 10px 4px 40px 4px;
}
.commentloop > .name {
color: $ok3;
}
.within {
margin: 0 auto;
border: 2px solid $suwa03;
box-shadow: 0px 0px 7px 3px $suwa04;
}
.wny {
border: solid 2px $ng5;
box-shadow: 0px 0px 20px 10px $ng4;
}
.bny, .cny {
background-color: $ng2;
border-bottom: solid 2px $ng5;
}
.mny {
background-color: $ng6;
border-bottom: solid 2px $ng5;
}
.kero-section {
width: 100%;
font-size: 150%;
font-weight: bolder;
text-align: center;
padding: 4px;
margin: 8px 0;
background: linear-gradient(to bottom, $suwa03 0%, $evil4 34%, $suwa02 100%);
color: $white1;
border-bottom-color: $suwa00;
border-right-color: $suwa00;
border-bottom-color: $suwa00;
border-right-color: $suwa00;
border-width: 1px;
border-radius: 25px;
cursor: default;
}

ファイルの表示

@ -1,16 +0,0 @@
// @font-face {
// font-family: jpserriffont;
// src: url('jpserriffont.woff');
// }
@font-face {
font-family: 'jpserriffont';
font-style: normal;
font-weight: 400;
src: url('../fonts/jpserriffont.woff');
font-display: swap;
}
body {
font-family: jpserriffont;
}

ファイルの表示

@ -1,100 +0,0 @@
.logo-img {
border: 2px solid $suwa03;
box-shadow: 0 0 7px 3px $suwa04;
}
.logo-sns {
transition: background 0.3s, color 0.3s;
background-color: $black2;
border: 1px solid $white2;
padding: 8px;
margin: 4px 10px;
}
.logo-sns:hover {
background-color: $white2;
border: 1px solid $black2;
}
.logo-play {
transition: background 0.3s, color 0.3s;
background-color: transparent;
border-radius: 25%;
padding: 2px;
}
.logo-play:hover {
background-color: $ng4;
}
.logo-br {
position: absolute;
bottom: 8px;
right: 16px;
}
/// Stroke font-character
/// @param {Integer} $stroke - Stroke width
/// @param {Color} $color - Stroke color
/// @return {List} - text-shadow list
@function stroke($stroke, $color) {
$shadow: ();
$from: $stroke*-1;
@for $i from $from through $stroke {
@for $j from $from through $stroke {
$shadow: append($shadow, $i*1px $j*1px 0 $color, comma);
}
}
@return $shadow;
}
/// Stroke font-character
/// @param {Integer} $stroke - Stroke width
/// @param {Color} $color - Stroke color
/// @return {Style} - text-shadow
@mixin stroke($stroke, $color) {
text-shadow: stroke($stroke, $color);
}
@keyframes sitenamehover {
0% { text-shadow: stroke(4, $suwa04); }
25% { text-shadow: stroke(4, $suwa03); }
50% { text-shadow: stroke(4, $suwa00); }
75% { text-shadow: stroke(4, $suwa03); }
100% { text-shadow: stroke(4, $suwa04); }
}
.logo-c {
font-size: 64px;
font-weight: bolder;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-shadow: stroke(4, $suwa04);
}
.logo-c:hover {
animation: sitenamehover 2s linear infinite;
}
@media (max-width : 1200px) {
.logo-c {
font-size: 32px;
}
}
@media (max-width : 968px) {
.logo-c {
font-size: 20px;
}
.logo-br, .nomobile {
display: none;
}
}
@media (max-width : 525px) {
.logo-br, .nomobile {
display: none;
}
}

ファイルの表示

@ -1,57 +0,0 @@
.bg-dark {
background: radial-gradient(farthest-corner at 50% 85%, $suwa06 0%, $black1 100%);
border: 2px solid $suwa03;
box-shadow: 0 0 7px 3px $suwa04;
}
.navbar {
padding: 0px;
}
.navbar-toggler {
border: 0px solid transparent;
}
.navbar-nav .dropdown-menu {
background-color: $black2;
color: $white1;
border: 2px solid $suwa03;
box-shadow: 0 0 7px 3px $suwa04;
}
.dropdown-item {
color: $white1;
}
.dropdown-item.active, .dropdown-item:active, .dropdown-item:hover, .dropdown-item:focus {
color: $white1;
background-color: $suwa03;
}
.navbar-brand {
padding: 5px;
}
.navbar-brand, .nav-item {
transition: background 0.3s;
border-radius: 2px;
cursor: pointer;
}
.navbar-brand:hover, .nav-item:hover {
background-color: $suwa07;
}
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
border-color: $suwa08;
}
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link {
color: $white1;
background-color: $suwa04;
border-color: $suwa08;
}
.nav-tabs {
border-bottom: 1px solid $suwa03;
}

ファイルの表示

@ -1,21 +0,0 @@
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-thumb {
background: $suwa03;
transition: background 0.3s;
}
::-webkit-scrollbar-thumb:hover {
background: $suwa01;
}
::-webkit-scrollbar-thumb:active {
background: $suwa08;
}
::-webkit-scrollbar-track {
background-color: $white1;
background: $black1;
}

ファイルの表示

@ -1,8 +0,0 @@
.sidemenu {
border: 2px solid $suwa03;
box-shadow: 0 0 7px 3px $suwa04;
}
.nav-pills .nav-link {
border-radius: 0px;
}

ファイルの表示

@ -1,61 +0,0 @@
// Variables
@import "variables";
// Bootstrap
@import '~bootstrap/scss/bootstrap';
// フォント
@import "jpserriffont";
// ロゴ
@import "logo";
// ナビバー
@import "navbar";
// サイドメニュー
@import "sidemenu";
// コンテンツ
@import "contents";
// スクロール
@import "scroll";
// コンポーネント
@import "conponent/badge";
@import "conponent/button";
@import "conponent/check";
@import "conponent/form";
@import "conponent/modal";
@import "conponent/pagination";
@import "conponent/select";
// テーブル
@import "conponent/table";
// その他
#app {
font-family: monospace;
font-size: large;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: left;
margin-top: 48px;
margin-left: 0px;
}
body {
font-family: 'jpserriffont';
text-align: center;
color: $white1;
background-color: $black1;
}
a { color: $suwa04; }
a:hover { color: $suwa03; }
// .new { background-color: $suwa09; margin: 10px auto; padding: 0; }
// .head > div { margin: 5px 0; }
// .new-head, .new-body { padding: 10px; }
// .new-head { border: 2px solid $suwa03; background-color: $suwa10; }
// .new-body { border-bottom: 2px solid $suwa03; border-left: 2px solid $suwa03; border-right: 2px solid $suwa03; }

ファイルの表示

@ -1,62 +0,0 @@
// Variables
@import "variables";
@import "variables_f";
// Bootstrap
@import '~bootstrap/scss/bootstrap';
// フォント
@import "jpserriffont";
// ロゴ
@import "logo";
// ナビバー
@import "navbar";
// サイドメニュー
@import "sidemenu";
// コンテンツ
@import "contents";
// スクロール
@import "scroll";
// コンポーネント
@import "conponent/badge";
@import "conponent/button";
@import "conponent/check";
@import "conponent/form";
@import "conponent/modal";
@import "conponent/pagination";
@import "conponent/select";
// テーブル
@import "conponent/table";
// その他
#app {
font-family: monospace;
font-size: large;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: left;
margin-top: 48px;
margin-left: 0px;
}
body {
font-family: 'jpserriffont';
text-align: center;
color: $white1;
background-color: $black1;
}
a { color: $suwa04; }
a:hover { color: $suwa03; }
// .new { background-color: $suwa09; margin: 10px auto; padding: 0; }
// .head > div { margin: 5px 0; }
// .new-head, .new-body { padding: 10px; }
// .new-head { border: 2px solid $suwa03; background-color: $suwa10; }
// .new-body { border-bottom: 2px solid $suwa03; border-left: 2px solid $suwa03; border-right: 2px solid $suwa03; }

ファイルの表示

@ -1,62 +0,0 @@
// Variables
@import "variables";
@import "variables_m";
// Bootstrap
@import '~bootstrap/scss/bootstrap';
// フォント
@import "jpserriffont";
// ロゴ
@import "logo";
// ナビバー
@import "navbar";
// サイドメニュー
@import "sidemenu";
// コンテンツ
@import "contents";
// スクロール
@import "scroll";
// コンポーネント
@import "conponent/badge";
@import "conponent/button";
@import "conponent/check";
@import "conponent/form";
@import "conponent/modal";
@import "conponent/pagination";
@import "conponent/select";
// テーブル
@import "conponent/table";
// その他
#app {
font-family: monospace;
font-size: large;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: left;
margin-top: 48px;
margin-left: 0px;
}
body {
font-family: 'jpserriffont';
text-align: center;
color: $white1;
background-color: $black1;
}
a { color: $suwa04; }
a:hover { color: $suwa03; }
// .new { background-color: $suwa09; margin: 10px auto; padding: 0; }
// .head > div { margin: 5px 0; }
// .new-head, .new-body { padding: 10px; }
// .new-head { border: 2px solid $suwa03; background-color: $suwa10; }
// .new-body { border-bottom: 2px solid $suwa03; border-left: 2px solid $suwa03; border-right: 2px solid $suwa03; }

ファイルの表示

@ -1,13 +0,0 @@
.badge-danger {
color: $white1;
background-color: $ng3;
}
.badge-light {
color: $black1;
background-color: $white2;
}
.badge {
font-size: 100%;
}

ファイルの表示

@ -1,189 +0,0 @@
.btn, btn:hover {
margin: 0 2px;
border: 2px solid;
}
.btn {
border-left-color: $white1;
border-top-color: $white1;
}
.btn:hover {
border-left-color: $grey3;
border-top-color: $grey3;
}
.btn-cwgames, .btn-cwgames.disabled, .btn-cwgames:disabled {
background: radial-gradient(ellipse at top, $black3, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
border-bottom-color: $grey2;
border-right-color: $grey2;
}
.btn-cwgames:hover {
color: $white1;
background-color: $grey4;
border-color: transparent;
border-bottom-color: $black2;
border-right-color: $black2;
}
.btn-fumei, .btn-fumei.disabled, .btn-fumei:disabled {
background: radial-gradient(ellipse at top, $kawaii3, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
background-color: $kawaii2;
border-bottom-color: $kawaii1;
border-right-color: $kawaii1;
}
.btn-fumei:hover {
color: $white1;
background-color: $kawaii3;
border-color: transparent;
border-bottom-color: $kawaii2;
border-right-color: $kawaii2;
}
.btn-fumei-check {
color: $white1;
background-color: $kawaii3;
border-color: transparent;
border-bottom-color: $kawaii2;
border-right-color: $kawaii2;
box-shadow: 0px 0px 7px 3px $kawaii2;
}
.btn-danshi, .btn-danshi.disabled, .btn-danshi:disabled {
background: radial-gradient(ellipse at top, $dan2, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
background-color: $white1;
border-bottom-color: $dan1;
border-right-color: $dan1;
}
.btn-danshi:hover {
color: $white1;
background-color: $dan4;
border-color: transparent;
border-bottom-color: $dan3;
border-right-color: $dan3;
}
.btn-danshi-check {
color: $white1;
background-color: $dan4;
border-color: transparent;
border-bottom-color: $dan3;
border-right-color: $dan3;
box-shadow: 0px 0px 7px 3px $dan3;
}
.btn-joshi, .btn-joshi.disabled, .btn-joshi:disabled {
background: radial-gradient(ellipse at top, $jo2, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
background-color: $white1;
border-bottom-color: $jo1;
border-right-color: $jo1;
}
.btn-joshi:hover {
color: $white1;
background-color: $jo4;
border-color: transparent;
border-bottom-color: $jo3;
border-right-color: $jo3;
}
.btn-joshi-check {
color: $white1;
background-color: $jo4;
border-color: transparent;
border-bottom-color: $jo3;
border-right-color: $jo3;
box-shadow: 0px 0px 7px 3px $jo3;
}
.btn-primary, .btn-primary.disabled, .btn-primary:disabled {
background: radial-gradient(ellipse at top, $suwa03, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
border-bottom-color: $suwa00;
border-right-color: $suwa00;
}
.btn-primary:hover {
color: $white1;
background-color: $suwa08;
border-color: transparent;
border-bottom-color: $suwa04;
border-right-color: $suwa04;
}
.btn-secondary, .btn-secondary.disabled, .btn-secondary:disabled {
background: radial-gradient(ellipse at top, $grey3, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
border-bottom-color: $grey1;
border-right-color: $grey1;
}
.btn-secondary:hover {
color: $white1;
background-color: $grey5;
border-color: transparent;
border-bottom-color: $grey2;
border-right-color: $grey2;
}
.btn-success, .btn-success.disabled, .btn-success:disabled, .alert-success {
background: radial-gradient(ellipse at top, $ok2, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
border-bottom-color: $ok1;
border-right-color: $ok1;
}
.btn-success:hover {
color: $white1;
background-color: $ok5;
border-color: transparent;
border-bottom-color: $ok4;
border-right-color: $ok4;
}
.btn-danger, .btn-danger.disabled, .btn-danger:disabled, .alert-danger {
background: radial-gradient(ellipse at top, $ng3, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
border-bottom-color: $ng1;
border-right-color: $ng1;
}
.btn-danger:hover {
color: $white1;
background-color: $ng7;
border-color: transparent;
border-bottom-color: $ng3;
border-right-color: $ng3;
}
.btn-warning, .btn-warning.disabled, .btn-warning:disabled, .alert-warning {
background: radial-gradient(ellipse at top, $yellow3, transparent),
radial-gradient(ellipse at bottom, $black1, transparent);
color: $white1;
border-bottom-color: $yellow1;
border-right-color: $yellow1;
}
.btn-warning:hover {
color: $white1;
background-color: $yellow5;
border-color: transparent;
border-bottom-color: $yellow3;
border-right-color: $yellow3;
}

ファイルの表示

@ -1,16 +0,0 @@
.form-control, .form-control:focus {
background-color: $black1;
color: $white1;
}
.form-control {
border: 1px solid $suwa10;
}
.form-control:focus {
border: 1px solid $suwa03;
}
.form-control:disabled, .form-control[readonly] {
background-color: $black1;
}

ファイルの表示

@ -1,15 +0,0 @@
.modal-header, .modal-body, .modal-footer {
color: $white1;
}
.modal-header {
background: linear-gradient(to bottom, $suwa04 0%, $suwa02 34%, $suwa03 100%);
}
.modal-body {
background-color: $black3;
}
.modal-footer {
background-color: $black2;
}

ファイルの表示

@ -1,49 +0,0 @@
.page-link {
background: linear-gradient(to bottom, $evil4 0%, $evil1 34%, $evil6 100%);
}
.page-link, .page-item .disabled {
text-align: center;
color: $white1;
padding: 8px 20px;
font-size: 28px;
border-bottom: solid 2px $suwa03;
cursor: pointer;
transition: background 0.3s, color 0.3s;
margin: auto;
}
.page-link > a {
color: $white1;
}
.page-link > a:hover {
text-decoration: none;
}
.page-link:hover {
color: $white1;
background: linear-gradient(to bottom, $evil3 0%, $evil0 34%, $evil2 100%);
}
.page-item.disabled > .page-link {
color: $white1;
background: linear-gradient(to bottom, $black3 0%, $grey4 34%, $grey5 100%);
border-color: $suwa04;
}
.page-item.active > .page-link {
color: $white1;
background: linear-gradient(to bottom, $suwa04 0%, $suwa01 34%, $suwa06 100%);
border-color: $suwa04;
}
.page-item.active > .page-link:hover {
color: $white1;
background: linear-gradient(to bottom, $suwa03 0%, $suwa00 34%, $suwa02 100%);
}
.pagination {
margin: auto;
padding: 8px;
}

ファイルの表示

@ -1,5 +0,0 @@
.custom-select {
background-color: $black1;
border: 1px solid $suwa10;
color: $white1;
}

ファイルの表示

@ -1,20 +0,0 @@
.table-dark {
color: $white1;
background-color: $black3;
border: 2px solid $suwa03;
transition: background-color 0.3s;
}
.table-dark th, .table-dark td, .table-dark thead th {
border-color: $suwa03;
}
.table-dark.table-hover tbody tr {
transition: background-color 0.3s;
background-color: $black3;
}
.table-dark.table-hover tbody tr:hover {
color: $white1;
background-color: $suwa07;
}

ファイルの表示

@ -0,0 +1,96 @@
<div id="comments" class="comments-area clearfix">
<h3 class="comments-count section-heading uppercase"><span>{{ $comment['total'] }} 件のコメント</span></h3>
<div style="margin: 12px 0;">
@if ($isvideo !== 'n')
<hr />
@if ($user == new stdClass())
<div class="form-group row">
<div class="col-md-4 col-lg-3">名前</div>
<div class="input-group col-md col-lg">
<input type="text" name="new-name" class="form-control" value="" placeholder="ご入力しない場合、名前は「名無しのテクニシャン」になります。" />
</div>
</div>
<div class="form-group row">
<div class="col-md-4 col-lg-3">メールアドレス</div>
<div class="input-group col-md col-lg">
<input type="text" name="new-mail" class="form-control" value="" placeholder="返信される場合、メールに通知を送ります。" />
</div>
</div>
@else
<div class="form-group row">
<div class="col-md-4 col-lg-3">名前</div>
<div class="input-group col-md col-lg">
<a href="/profile/{{ $user['user_id'] }}" style="{{ $user['showcol'] }}"><img style="width: 24px; height: 24px;" src="{{ $user['avatar'] }}" alt="{{ $user['showname'] }}さんのアイコン`"> {{ $user['showname'] }}</a>
</div>
</div>
@endif
<div class="row">
<div class="col-md-4 col-lg-3">本文 <span class="badge badge-danger">必須</span></div>
<div class="col-md col-lg">
<textarea class="form-control" name="new-message" rows="4"></textarea>
</div>
</div>
<div class="row" style="margin-top: 16px;">
<div class="col">
<input type="submit" class="btn btn-block btn-primary" value="送信" />
</div>
</div>
</span>
@endif
@if ($comment['total'] == 0) コメントがありません。
@else
@foreach ($comment['come'] as $i => $c)
<ul class="commentlist">
<li class="comment even thread-even depth-1" id="li-comment-{{ $c->id }}">
<div class="commentnumber">{{ (int)$i+1 }}({{ $c->src }})</div>
<div id="comment-{{ $c->id }}">
<div>
<cite class="fn">
@if ($c->isvideo == 'n')
<img style="height: 24px;" src="{{ $c->icon }}" alt="{{ $c->name }}さんのアイコン">
<a href="{{ $c->channel }}" style="overflow-wrap: break-word;">{{ ($c->name ?: '名無しのテクニシャン') }}</a>
@else
@if ($c->user_id)
<a href="/profile/{{ $c->user_id }}`" style="{{ $c->showcol }}"><img style="width: 24px; height: 24px;" src="{{ $c->avatar }}" alt="{{ $c->showname }}さんのアイコン`"> {{ $c->showname }}</a>
@else
{{ ($c->name ?: '名無しのテクニシャン') }}
@endif
@endif
</cite> <span class="says">より:</span>
<span class="comment-meta commentmetadata" id="#comment-{{ $c->id }}"> <a href="#comment-{{ $c->id }}">{{ $c->created }}</a></span>
</div>
<p style="white-space: pre-wrap; word-wrap: break-word; width: 500px;"><?php echo $c->message; ?></p>
<div class="reply">返信({{ $c->replyCount }}</div>
</div>
</li>
@if (isset($c->replies))
@foreach ($c->replies as $j => $r)
<ul class="commentlist">
<li class="comment even thread-even depth-2" id="li-comment-${{ $r->id }}">
<div class="commentnumber">{{ $i+1 }}/{{ $j+1 }}({{ $c->src }})</div>
<div id="comment-{{ $r->id }}">
<div>
<cite class="fn">
@if ($c->isvideo != 'f')
<img style="height: 24px;" src="{{ $r->icon }}" alt="{{ $r->name }}さんのアイコン">
<a href="{{ $r->channel }}">{{ ($r->name ?: '名無しのテクニシャン') }}</a>
@else
@if ($r->user_id)
<a href="/profile/{{ $r->user_id }}`" style="{{ $r->showcol }}"><img style="width: 24px; height: 24px;" src="{{ $r->avatar }}" alt="{{ $r->showname }}さんのアイコン`"> {{ $r->showname }}</a>
@else
{{ ($r->name ?: '名無しのテクニシャン') }}
@endif
@endif
</cite> <span class="says">より:</span>
<span class="comment-meta commentmetadata" id="#comment-{{ $r->id }}"> <a href="#comment-{{ $r->id }}">{{ $r->created }}</a></span>
</div>
<p style="white-space: pre-wrap; word-wrap: break-word; width: 500px;"><?php echo $r->message; ?></p>
</div>
</li>
</ul>
@endforeach
@endif
</ul>
@endforeach
@endif
</div>

変更されたファイルが多すぎるため、一部のファイルは表示されません さらに表示