このコミットが含まれているのは:
dragon1211 2021-10-01 09:27:55 -07:00
コミット e6e182cec5
141個のファイルの変更121910行の追加1096行の削除

ファイルの表示

@ -1,2 +1,41 @@
# kikikanri
危機管理クラウドアプリ
# 開発環境構築手順
#### Docker立ち上げ
docker-compose up -d
#### appに入る
docker-compose exec app bash
#### 3.各種インストール
npm install
composer install
#### npm実行
cp .env.example .env
php artisan key:generate
npm run watch ( npm run dev )
#### DB接続
php artisan migrate:fresh --seed
# 仕様書
#### ■ 基本情報
https://docs.google.com/spreadsheets/d/1_S9Hbrf3XZcLXBrnTqxTusuoO5_9dmAooTQ2EGsR7mo/edit?usp=sharing
#### ■ フロントエンド
https://docs.google.com/spreadsheets/d/14wR8VARy5geANyMcaXGANRfmBjXs8hZp3O-pFYbzUXo/edit?usp=sharing
#### ■ バックエンド
https://docs.google.com/spreadsheets/d/1UYafqtgnrRErS_O3vWLAHb_UsTO14VOpdqZ07ActeZM/edit?usp=sharing
#### ■ DB
https://docs.google.com/spreadsheets/d/1RBd-o9d_aLiRsopX4rxdgRTo9aPUtrZbLauN7RtLYek/edit?usp=sharing
#### デザイン
https://xd.adobe.com/view/d692dfcb-15f6-4444-9c48-2bbab7b06979-83c1/

ファイルの表示

@ -0,0 +1,101 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Child;
use App\Models\FatherRelation;
use App\Models\MeetingApprovals;
class ChildrenController extends Controller {
public function login () {}
public function registerTemporary () {}
public function registerMain () {}
public function checkTel () {}
public function list () {
// 親一覧の取得に成功
if ($result = Child::orderBy('created_at', 'desc')->get()->toArray()) {
return ['status_code' => 200, 'params' => $result];
}
// 親一覧の取得に失敗
return ['status_code' => 400];
}
public function listOfFather (Request $r) {
$result = [];
$child_select = ['id', 'image', 'last_name', 'first_name'];
if ($list = FatherRelation::where('father_id', $r->father_id)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $l) {
$result[] = Child::select($child_select)->find($l['father_id']);
}
return ['status_code' => 200, 'params' => $result];
}
return ['status_code' => 400];
}
public function listOfMeeting (Request $r) {
$result = [];
$child_select = ['id', 'image', 'last_name', 'first_name'];
if ($list = MeetingApprovals::where('meeting_id', $r->meeting_id)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $l) {
$result[] = Child::select($child_select)->find($l['id']);
}
return ['status_code' => 200, 'params' => $result];
}
return ['status_code' => 400];
}
public function listOfMeetingNotifyUnapprovel () {}
public function listOfMeetingNotifyApprovel () {}
public function detail (Request $r, $child_id) {
$result = [];
$child_select = ['email', 'tel', 'last_name', 'first_name', 'image', 'company'];
$father_relation_select = ['hire_at'];
// 親詳細の取得に成功
if ($list = Child::where('id', $child_id)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = Child::select($child_select)->find($l['id']);
if (isset($r->father_id)) {
$result[$i]['father_relation'] = FatherRelation::select($father_relation_select)->where('father_id', $r->father_id)->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 親詳細の取得に失敗
return ['status_code' => 400];
}
public function updateImage ($child_id) {}
public function updateProfile ($child_id) {}
public function updatePassword ($child_id) {}
public function delete ($child_id) {
// 削除成功
if (Child::where('id', $child_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,19 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\EmailActivation;
class EmailActivationsController extends Controller {
public function deleteRelationFather ($father_id) {
// 削除成功
if (EmailActivation::where('father_id', $father_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,32 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class FatherRelationsController extends Controller {
public function register () {}
public function updateHireDate ($child_id) {}
public function deleteRelationFather ($father_id) {
// 削除成功
if (FatherRelation::where('father_id', $father_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
public function deleteRelationChild ($child_id) {
// 削除成功
if (FatherRelation::where('child_id', $child_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -2,19 +2,84 @@
namespace App\Http\Controllers\Api;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class FathersController {
public $error = [];
use App\Models\Father;
use App\Models\FatherRelation;
class FathersController extends Controller {
public function login () {}
public function registerTemporary () {}
public function registerMain () {}
public function list () {
$result = [];
$father_select = ['id', 'company', 'image'];
$father_relation_select = ['created_at'];
// 親一覧の取得に成功
if ($list = DB::table('fathers')->orderBy('created_at', 'desc')->get()->toArray()) return ['status_code' => 200, 'params' => $list];
if ($list = Father::select($father_select)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['relation'] = FatherRelation::select($father_relation_select)->where('father_id', $l['id'])->first();
}
return ['status_code' => 200, 'params' => $result];
}
// 親一覧の取得に失敗
return ['status_code' => 400];
}
public function listOfChild (Request $r) {
$result = [];
$father_select = ['id', 'company', 'image'];
// 親一覧の取得に成功
if ($list = FatherRelation::where('child_id', $r->child_id)->orderBy('created_at', 'desc')->get()->toArray()) {
$result = [];
foreach ($list as $l) {
$result[] = Father::select($father_select)->find($l['father_id']);
}
return ['status_code' => 200, 'params' => $result];
}
// 親一覧の取得に失敗
return ['status_code' => 400];
}
public function detail ($father_id) {
$father_select = ['id', 'email', 'company', 'image', 'tel'];
// 親詳細の取得に成功
if ($result = Father::select($father_select)->where('id', $father_id)->orderBy('created_at', 'desc')->get()->toArray()) {
return ['status_code' => 200, 'params' => $result];
}
// 親詳細の取得に失敗
return ['status_code' => 400];
}
public function updateImage ($father_id) {}
public function updateProfile ($father_id) {}
public function updatePassword ($father_id) {}
public function delete ($father_id) {
// 削除成功
if (Father::where('id', $father_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
public function checkEmail () {}
}

ファイルの表示

@ -0,0 +1,42 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\LoginLimits;
class LoginLimitsController extends Controller {
public function countFailure (Request $r) {
// user_agentがなければ、エラーを出します。
if (!isset($r->user_agent)) return ['status_code' => 400, 'error_messages' => 'ユーザーエイジェントを読めません。'];
// 受取
if ($get = LoginLimits::where('user_agent', $r->user_agent)->first()) {
// 失敗数は10以上だと、エラーを出します。以内の場合、失敗数を増えます。
if ($get->fail_number >= 10) {
return ['status_code' => 400, 'error_messages' => 'ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。'];
}
else {
LoginLimits::where('user_agent', $r->user_agent)->update(['fail_number' => $get->fail_number+1]);
}
}
else {
// まだこのuser_agentがなければ、追加します。
LoginLimits::insert(['user_agent' => $r->user_agent, 'fail_number' => 1]);
}
return ['status' => 200];
}
public function delete (Request $r) {
// 削除成功
if (LoginLimits::where('user_agent', $r->user_agent)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,74 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Child;
use App\Models\Meeting;
use App\Models\MeetingApprovals;
class MeetingApprovalsController extends Controller {
public function register (Request $r) {}
public function registerOfApproval (Request $r) {}
public function listChildrenOfMeeting (Request $r) {}
public function listChildrenOfApprovel (Request $r) {
$meeting_select = ['id', 'child_id', 'approval_at'];
$child_select = ['id', 'image', 'last_name', 'first_name'];
// meeting_idでミーティングの許可があれば
if ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get()) {
// 子を付いてみて。child_idがなければ、すぐ400になります。
foreach ($params as $p) {
if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) {
return ['status' => 400];
}
}
return ['status' => 200, 'params' => $params];
}
// エラーの場合
return ['status' => 400];
}
public function listChildrenOfUnapprovel (Request $r) {
$meeting_select = ['id', 'child_id', 'approval_at'];
$child_select = ['id', 'image', 'last_name', 'first_name'];
// meeting_idでミーティングの許可がなければ
if ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get()) {
// 子を付いてみて。child_idがなければ、すぐ400になります。
foreach ($params as $p) {
if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) {
return ['status' => 400];
}
}
return ['status' => 200, 'params' => $params];
}
// エラーの場合
return ['status' => 400];
}
public function deleteRelationMeeting ($meeting_id) {
// 削除成功
if (MeetingApprovals::where('meeting_id', $meeting_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
public function deleteRelationChild ($child_id) {
// 削除成功
if (MeetingApprovals::where('child_id', $child_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use App\Models\MeetingImage;
class MeetingImagesController extends Controller {
public function register (Request $r) {
$validate = Validator::make($r->all(), ['image' => 'max:1024|mimes:jpg,png,gif']);
$validate->after(function ($validate) { if (count($r->image) > 10) $validate->errors()->add('count', '10枚以上登録できません。'); });
if ($validate->fails()) return ['status_code' => 422, 'error_messages' => $validate->errors()];
foreach ($r->images as $image) { if (!MeetingImage::insert(['meeting_id' => $meeting_id, 'image' => $image])) return ['status_code' => 400]; }
return ['status_code' => 200];
}
public function deleteRelationMeeting ($meeting_id) {
// 削除成功
if (MeetingImage::where('meeting_id', $meeting_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,395 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Meeting;
use App\Models\MeetingImage;
use App\Models\MeetingApprovals;
use App\Models\Child;
use App\Models\Father;
class MeetingsController extends Controller {
public function register () {}
public function registerFavorite () {}
public function list () {
// adminsのみ
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('approval_at', 'desc')->get();
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfApprovalOfChild (Request $r) {
if (!isset($r->child_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at'];
// 取得に成功
if ($approval = MeetingApprovals::where('child_id', $r->child_id)->whereNotNull('approval_at')->orderBy('updated_at', 'desc')->get()) {
foreach ($approval as $a) {
if ($list = Meeting::select($meeting_select)->where('id', $a->meeting_id)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
}
return ['status_code' => 200, 'params' => $result];
}
}
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfNonApprovalOfChild (Request $r) {
if (!isset($r->child_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at'];
// 取得に成功
if ($approval = MeetingApprovals::where('child_id', $r->child_id)->whereNull('approval_at')->orderBy('approval_at', 'asc')->get()) {
foreach ($approval as $a) {
if ($list = Meeting::select($meeting_select)->where('id', $a->meeting_id)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', $l['id'])->orderBy('approval_at', 'asc')->get();
}
return ['status_code' => 200, 'params' => $result];
}
}
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfCompleteOfFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_approvals_select = ['child_id', 'approval_at'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
if (count($result[$i]['approvals']) == 0) {
unset($result[$i]);
continue;
}
foreach ($result[$i]['approvals'] as $ii => $ra) {
$result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfIncompleteOfFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_approvals_select = ['child_id', 'approval_at'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
if (count($result[$i]['approvals']) > 1) {
unset($result[$i]);
continue;
}
foreach ($result[$i]['approvals'] as $ii => $ra) {
$result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfFavoriteofFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at', 'is_favorite'];
$meeting_approvals_select = ['child_id', 'approval_at'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('is_favorite', 1)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
foreach ($result[$i]['approvals'] as $ii => $ra) {
$result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfNonFavoriteofFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at', 'is_favorite'];
$meeting_approvals_select = ['child_id', 'approval_at'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('is_favorite', 0)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
foreach ($result[$i]['approvals'] as $ii => $ra) {
$result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function searchOfApprovalOfChild (Request $r) {
if (!isset($r->child_id)) {
return ['status_code' => 400];
}
if (!isset($r->keyword)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at as date'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['father'] = Father::select($father_select)->where('id', $l['father_id'])->first();
$result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('child_id', $r->child_id)->whereNotNull('approval_at')->get();
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function searchOfNonApprovalOfChild (Request $r) {
if (!isset($r->child_id)) {
return ['status_code' => 400];
}
if (!isset($r->keyword)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at as date'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['father'] = Father::select($father_select)->where('id', $l['father_id'])->first();
$result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('child_id', $r->child_id)->whereNull('approval_at')->get();
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function searchOfCompleteofFather (Request $r) {
$r->father_id = 1;
$r->keyword = '母';
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
if (!isset($r->keyword)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$meeting_approvals_select = ['approval_at', 'child_id'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNull('approval_at')->get();
foreach ($result[$i]['meeting_approvals'] as $ii => $ra) {
$result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function searchOfIncompleteofFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
if (!isset($r->keyword)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$meeting_approvals_select = ['approval_at', 'child_id'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNotNull('approval_at')->get();
foreach ($result[$i]['meeting_approvals'] as $ii => $ra) {
$result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function detail (Request $r, $meeting_id) {
$r->father_id = 1;
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'pdf', 'updated_at'];
$meeting_images_select = ['image'];
$meeting_approvals_select = ['approval_at', 'child_id'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('id', $meeting_id)->where('father_id', $r->father_id)->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNotNull('approval_at')->get();
foreach ($result[$i]['meeting_approvals'] as $ii => $ra) {
$result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function delete ($meeting_id) {
// 削除成功
if (Meetings::where('meeting_id', $meeting_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
public function deleteRelationFather ($father_id) {
// 削除成功
if (Meetings::where('father_id', $father_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,18 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\TelActivation;
class TelActivationsController extends Controller {
public function deleteRelationChild ($child_id) {
// 削除成功
if (TelActivation::where('child_id', $child_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
}

11
backend/app/Models/Contacts.php ノーマルファイル
ファイルの表示

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Contacts extends Model
{
use HasFactory;
}

11
backend/app/Models/LoginLimits.php ノーマルファイル
ファイルの表示

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class LoginLimits extends Model
{
use HasFactory;
}

11
backend/app/Models/MeetingApprovals.php ノーマルファイル
ファイルの表示

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MeetingApprovals extends Model
{
use HasFactory;
}

11
backend/app/Models/Smss.php ノーマルファイル
ファイルの表示

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Smss extends Model
{
use HasFactory;
}

ファイルの表示

@ -48,8 +48,8 @@ return [
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'database' => env('DB_DATABASE', 'laravel_local'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',

ファイルの表示

@ -24,7 +24,6 @@ class AdminFactory extends Factory
return [
'email' => $this->faker->email,
'password' => $this->faker->password,
'remember_token' => $this->faker->password,
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];

ファイルの表示

@ -21,15 +21,21 @@ class ChildFactory extends Factory
*/
public function definition()
{
$tel = [
'070'.rand(10000000, 99999999),
'080'.rand(10000000, 99999999),
'090'.rand(10000000, 99999999)
];
return [
'email' => $this->faker->email,
'tel' => $this->faker->phoneNumber,
'tel' => $tel[rand(0, 2)],
'tel_verified_at' => $this->faker->dateTime,
'password' => $this->faker->password,
'last_name' => $this->faker->lastName,
'first_name' => $this->faker->firstName,
'img' => $this->faker->imageUrl,
'image' => $this->faker->imageUrl,
'company' => $this->faker->company,
'remember_token' => $this->faker->macPlatformToken,
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];

ファイルの表示

@ -2,17 +2,17 @@
namespace Database\Factories;
use App\Models\MeetingChild;
use App\Models\Contacts;
use Illuminate\Database\Eloquent\Factories\Factory;
class MeetingChildFactory extends Factory
class ContactsFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = MeetingChild::class;
protected $model = Contacts::class;
/**
* Define the model's default state.
@ -22,11 +22,10 @@ class MeetingChildFactory extends Factory
public function definition()
{
return [
'child_id'=>1,
'meeting_id'=>1,
'approval_at'=>$this->faker->dateTime,
'created_at'=>$this->faker->dateTime,
'updated_at'=>$this->faker->dateTime,
'email' => $this->faker->email,
'message' => $this->faker->realText(49),
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];
}
}

ファイルの表示

@ -22,6 +22,7 @@ class EmailActivationFactory extends Factory
public function definition()
{
return [
'type' => $this->faker->numberBetween($min=0, $max=1),
'father_id' => 1,
'email' => $this->faker->email,
'token' => $this->faker->creditCardNumber,

ファイルの表示

@ -21,15 +21,20 @@ class FatherFactory extends Factory
*/
public function definition()
{
$tel = [
'070'.rand(10000000, 99999999),
'080'.rand(10000000, 99999999),
'090'.rand(10000000, 99999999)
];
return [
'email' => $this->faker->email,
'email_verified_at' => $this->faker->dateTime,
'password' => $this->faker->password,
'last_name' => $this->faker->lastName,
'first_name' => $this->faker->firstName,
'company' => $this->faker->company,
'image' => $this->faker->imageUrl,
'profile' => $this->faker->realText(49),
'remember_token' => $this->faker->dateTime,
'tel' => $tel[rand(0, 2)],
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];

ファイルの表示

@ -22,10 +22,10 @@ class FatherRelationFactory extends Factory
public function definition()
{
return [
'father_id'=>1,
'child_id'=>1,
'created_at'=>$this->faker->dateTime,
'updated_at'=>$this->faker->dateTime,
'father_id' => 1,
'child_id' => 1,
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];
}
}

ファイルの表示

@ -0,0 +1,38 @@
<?php
namespace Database\Factories;
use App\Models\LoginLimits;
use Illuminate\Database\Eloquent\Factories\Factory;
class LoginLimitsFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = LoginLimits::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$ua = [
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.15.2 Chrome/87.0.4280.144 Safari/537.36', // qutebrowser
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36', // brave
'Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0', // firefox
'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Goanna/4.8 Firefox/68.0 PaleMoon/29.4.1' // palemoon
];
return [
'user_agent' => $ua[rand(0, 3)],
'fail_number' => rand(0, 10),
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];
}
}

ファイルの表示

@ -0,0 +1,32 @@
<?php
namespace Database\Factories;
use App\Models\MeetingApprovals;
use Illuminate\Database\Eloquent\Factories\Factory;
class MeetingApprovalsFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = MeetingApprovals::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'child_id' => 1,
'meeting_id' => 1,
'approval_at' => $this->faker->dateTime,
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];
}
}

ファイルの表示

@ -22,11 +22,12 @@ class MeetingFactory extends Factory
public function definition()
{
return [
'father_id'=>1,
'title'=>$this->faker->name,
'text'=>$this->faker->realText(49),
'pdf'=>$this->faker->url,
'is_favorite'=>$this->faker->numberBetween($min=0, $max=1),
'father_id' => 1,
'title' => $this->faker->name,
'text' => $this->faker->realText(49),
'pdf' => $this->faker->url,
'memo' => $this->faker->realText(49),
'is_favorite' => $this->faker->numberBetween($min=0, $max=1),
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];

ファイルの表示

@ -22,8 +22,8 @@ class MeetingImageFactory extends Factory
public function definition()
{
return [
'meeting_id'=>1,
'image'=>$this->faker->url,
'meeting_id' => 1,
'image' => $this->faker->url,
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];

32
backend/database/factories/SmssFactory.php ノーマルファイル
ファイルの表示

@ -0,0 +1,32 @@
<?php
namespace Database\Factories;
use App\Models\Smss;
use Illuminate\Database\Eloquent\Factories\Factory;
class SmssFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Smss::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'send_id' => 1,
'receive_id' => 1,
'is_sent' => rand(0, 2),
'created_at' => $this->faker->dateTime,
'updated_at' => $this->faker->dateTime,
];
}
}

ファイルの表示

@ -21,9 +21,16 @@ class TelActivationFactory extends Factory
*/
public function definition()
{
$tel = [
'070'.rand(10000000, 99999999),
'080'.rand(10000000, 99999999),
'090'.rand(10000000, 99999999)
];
return [
'child_id'=>1,
'tel'=>$this->faker->phoneNumber,
'type' => rand(0, 1),
'child_id' => 1,
'tel' => $tel[rand(0, 2)],
'token' => $this->faker->creditCardNumber,
'ttl' => $this->faker->dateTime,
'created_at' => $this->faker->dateTime,

ファイルの表示

@ -15,9 +15,8 @@ class CreateAdminsTable extends Migration
{
Schema::create('admins', function (Blueprint $table) {
$table->id();
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->string('email', 72)->unique();
$table->string('password', 72);
$table->timestamps();
});
}

ファイルの表示

@ -15,14 +15,13 @@ class CreateFathersTable extends Migration
{
Schema::create('fathers', function (Blueprint $table) {
$table->id();
$table->string('email');
$table->dateTime('email_verified_at')->nullable();
$table->string('password')->nullable();
$table->string('last_name')->nullable();
$table->string('first_name')->nullable();
$table->string('image')->nullable();
$table->string('profile')->nullable();
$table->rememberToken();
$table->string('email', 255)->unique();
$table->dateTime('email_verified_at');
$table->string('password', 72);
$table->string('company', 100)->nullable();
$table->string('image', 100)->nullable();
$table->string('profile', 1000)->nullable();
$table->string('tel', 11)->unique();
$table->timestamps();
});
}

ファイルの表示

@ -15,10 +15,10 @@ class CreateEmailActivationsTable extends Migration
{
Schema::create('email_activations', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('father_id');
$table->foreign('father_id')->references('id')->on('fathers');
$table->string('email');
$table->string('token');
$table->unsignedTinyInteger('type');
$table->unsignedBigInteger('father_id')->nullable();
$table->string('email', 255)->unique();
$table->string('token', 16);
$table->dateTime('ttl');
$table->timestamps();
});

ファイルの表示

@ -15,14 +15,14 @@ class CreateChildrenTable extends Migration
{
Schema::create('children', function (Blueprint $table) {
$table->id();
$table->string('email')->nullable();
$table->string('tel');
$table->dateTime('tel_verified_at')->nullable();
$table->string('last_name')->nullable();
$table->string('first_name')->nullable();
$table->string('img')->nullable();
$table->string('company')->nullable();
$table->rememberToken();
$table->string('email', 72)->unique();
$table->string('tel', 11)->unique();
$table->dateTime('tel_verified_at');
$table->string('password', 255);
$table->string('last_name', 100);
$table->string('first_name', 100);
$table->string('image', 100)->nullable();
$table->string('company', 255)->nullable();
$table->timestamps();
});
}

ファイルの表示

@ -15,10 +15,11 @@ class CreateTelActivationsTable extends Migration
{
Schema::create('tel_activations', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('child_id');
$table->unsignedTinyInteger('type');
$table->unsignedBigInteger('child_id')->nullable();
$table->foreign('child_id')->references('id')->on('children');
$table->string('tel');
$table->string('token');
$table->string('tel', 11)->unique();
$table->string('token', 100);
$table->dateTime('ttl');
$table->timestamps();
});

ファイルの表示

@ -17,10 +17,11 @@ class CreateMeetingsTable extends Migration
$table->id();
$table->unsignedBigInteger('father_id');
$table->foreign('father_id')->references('id')->on('fathers');
$table->string('title');
$table->string('text');
$table->string('pdf')->nullable();
$table->integer('is_favorite')->default(0);
$table->string('title', 255);
$table->string('text', 2000);
$table->string('pdf', 255)->nullable();
$table->string('memo', 2000)->nullable();
$table->integer('is_favorite')->nullable()->default(0);
$table->timestamps();
});
}

ファイルの表示

@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateLoginLimitsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('login_limits', function (Blueprint $table) {
$table->id();
$table->string('user_agent', 300);
$table->unsignedInteger('fail_number');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('login_limits');
}
}

ファイルの表示

@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMeetingChildrenTable extends Migration
class CreateMeetingApprovalsTable extends Migration
{
/**
* Run the migrations.
@ -13,7 +13,7 @@ class CreateMeetingChildrenTable extends Migration
*/
public function up()
{
Schema::create('meeting_children', function (Blueprint $table) {
Schema::create('meeting_approvals', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('child_id');
$table->foreign('child_id')->references('id')->on('children');
@ -31,6 +31,6 @@ class CreateMeetingChildrenTable extends Migration
*/
public function down()
{
Schema::dropIfExists('meeting_children');
Schema::dropIfExists('meeting_approvals');
}
}

ファイルの表示

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSmssesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('smsses', function (Blueprint $table) {
$table->id();
$table->unsignedTinyInteger('send_id');
$table->unsignedBigInteger('receive_id');
$table->foreign('receive_id')->references('id')->on('children');
$table->unsignedTinyInteger('is_sent')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('smsses');
}
}

ファイルの表示

@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateContactsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('contacts', function (Blueprint $table) {
$table->id();
$table->string('email', 255);
$table->string('message', 1000);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('contacts');
}
}

ファイルの表示

@ -3,9 +3,8 @@
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\MeetingChild;
class MeetingChildrenTableSeeder extends Seeder
class ContactsSeeder extends Seeder
{
/**
* Run the database seeds.
@ -14,6 +13,6 @@ class MeetingChildrenTableSeeder extends Seeder
*/
public function run()
{
\App\Models\MeetingChild::factory()->count(10)->create();
\App\Models\Contacts::factory()->count(10)->create();
}
}

ファイルの表示

@ -30,6 +30,12 @@ class DatabaseSeeder extends Seeder
$this->call
(MeetingImagesTableSeeder::class);
$this->call
(MeetingChildrenTableSeeder::class);
(MeetingApprovalsSeeder::class);
$this->call
(LoginLimitsSeeder::class);
$this->call
(ContactsSeeder::class);
$this->call
(SmssSeeder::class);
}
}

ファイルの表示

@ -0,0 +1,18 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class LoginLimitsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
\App\Models\LoginLimits::factory()->count(10)->create();
}
}

ファイルの表示

@ -0,0 +1,18 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class MeetingApprovalsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
\App\Models\MeetingApprovals::factory()->count(10)->create();
}
}

18
backend/database/seeders/SmssSeeder.php ノーマルファイル
ファイルの表示

@ -0,0 +1,18 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class SmssSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
\App\Models\Smss::factory()->count(10)->create();
}
}

41878
backend/package-lock.json generated

ファイル差分が大きすぎるため省略します 差分を読み込み

ファイルの表示

@ -9,10 +9,71 @@
"prod": "npm run production",
"production": "mix --production"
},
"dependencies": {
"@emotion/react": "^11.4.0",
"@emotion/styled": "^11.3.0",
"@iconify/icons-ant-design": "^1.1.0",
"@iconify/icons-eva": "^1.1.0",
"@iconify/icons-ic": "^1.1.7",
"@iconify/react": "^1.1.4",
"@material-ui/core": "^5.0.0-beta.1",
"@material-ui/lab": "^5.0.0-alpha.40",
"@material-ui/styles": "^5.0.0-beta.1",
"@material-ui/utils": "^5.0.0-beta.0",
"@mui/icons-material": "^5.0.1",
"@testing-library/jest-dom": "^5.14.1",
"apexcharts": "^3.27.3",
"change-case": "^4.1.2",
"date-fns": "^2.23.0",
"faker": "^5.5.3",
"formik": "^2.2.9",
"framer-motion": "^4.1.17",
"history": "^5.0.0",
"lodash": "^4.17.21",
"mdb-ui-kit": "^3.9.0",
"numeral": "^2.0.6",
"prop-types": "^15.7.2",
"react": "^17.0.2",
"react-apexcharts": "^1.3.9",
"react-avatar-editor": "^12.0.0",
"react-date-picker": "^8.3.2",
"react-dom": "^17.0.2",
"react-helmet-async": "^1.0.9",
"react-image-crop-component": "^1.1.2",
"react-paginate": "^7.1.3",
"react-router-dom": "^6.0.0-beta.0",
"react-scripts": "4.0.0",
"react-select": "^4.3.1",
"react-simple-star-rating": "^3.0.0",
"simplebar": "^5.3.5",
"simplebar-react": "^2.3.5",
"web-vitals": "^2.1.0",
"yup": "^0.32.9"
},
"devDependencies": {
"@babel/core": "^7.14.8",
"@babel/eslint-parser": "^7.14.7",
"@babel/preset-react": "^7.0.0",
"axios": "^0.21",
"bootstrap": "^4.0.0",
"eslint": "^7.31.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-config-prettier": "^8.3.0",
"eslint-config-react-app": "^6.0.0",
"eslint-plugin-flowtype": "^5.8.1",
"eslint-plugin-import": "^2.23.4",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-react": "^7.24.0",
"eslint-plugin-react-hooks": "^4.2.0",
"jquery": "^3.2",
"laravel-mix": "^6.0.6",
"lodash": "^4.17.19",
"postcss": "^8.1.14"
"popper.js": "^1.12",
"postcss": "^8.1.14",
"prettier": "^2.3.1",
"resolve-url-loader": "^3.1.2",
"sass": "^1.42.1",
"sass-loader": "^8.0.0"
}
}

10880
backend/public/css/app.css vendored ノーマルファイル

ファイル差分が大きすぎるため省略します 差分を読み込み

61900
backend/public/js/app.js vendored

ファイル差分が大きすぎるため省略します 差分を読み込み

ファイルの表示

@ -1 +1,4 @@
require('./bootstrap');
require('./pages/contact');
require('./pages/contact/complete');

0
backend/resources/js/component/header.js vendored ノーマルファイル
ファイルの表示

ファイルの表示

@ -0,0 +1,38 @@
import React from 'react';
import ReactDOM from 'react-dom';
import { Button } from '@material-ui/core';
const Contact_Complete = () => {
return (
<div>
<p className="text-center font-weight-bold ft-20">お問い合わせ完了</p>
<p className="p-2 mt-80-px mb-0 ft-13 bg-color-1">
お問い合わせが完了しました<br/>
3営業日以内にお返事させていただきます<br/><br/>
万が一届かない場合は以下のメールアドレスに 直接ご連絡くださいませ
</p>
<div className="p-2 my-4 border text-center font-weight-bold">sample@gmail.com</div>
<div className="d-flex justify-content-between ft-13">
<div className="w-50 pr-1">
<Button fullWidth className="p-3 rounded-20 ft-13 font-weight-bold text-black bg-color-2" onClick={()=>{window.location.href="/login/p-account/"}}>親ログイン画面へ</Button>
</div>
<div className="w-50 pl-1">
<Button fullWidth className="p-3 rounded-20 ft-13 font-weight-bold text-black bg-color-2" onClick={()=>{window.location.href="/login/c-account/"}}>子ログイン画面へ</Button>
</div>
</div>
{/* <div className="alert">メールアドレスのコビーに成功しました!</div> */}
</div>
)
}
if(document.getElementById('contact-complete')){
ReactDOM.render(
<Contact_Complete />,
document.getElementById('contact-complete')
)
}

54
backend/resources/js/pages/contact/index.jsx ノーマルファイル
ファイルの表示

@ -0,0 +1,54 @@
import React, { useEffect, useState } from 'react';
import ReactDOM from 'react-dom';
import { Button } from '@material-ui/core';
import { LoadingButton } from '@material-ui/lab';
import axios from 'axios';
const Contact = () => {
const [email, setEmail] = useState('');
const [text, setText] = useState('');
const handleSubmit = () => {
e.preventDefault();
const formdata = new FormData();
formdata.append('email', email);
formdata.append('text', text);
axios.post('/contacts/register/', formdata)
.then(response => {
if(response.status==200){
window.location.href = '/contact-us/complete';
}
})
}
return (
<form onSubmit={handleSubmit}>
<p className="text-center font-weight-bold ft-20">お問い合わせ</p>
<div className="c-input mt-4">
<label htmlFor="email" className="c-input__label"> メールアドレス </label>
<input type="email" name="email" id="email" className="w-100 c-input__edit is-invalid" value={email} onChange={e=>setEmail(e.target.value)} required autoFocus/>
</div>
<div className="c-input mt-4">
<label htmlFor="text" className="c-input__label"> お問合せ内容 </label>
<textarea name="text" id="text" rows="7" className="w-100 c-input__edit is-invalid" value={text} onChange={e=>setText(e.target.value)} required/>
</div>
<div className="mt-4">
<LoadingButton type="submit" fullWidth className="p-3 rounded-20 ft-15 font-weight-bold text-black bg-color-2">送信</LoadingButton>
</div>
</form>
)
}
if(document.getElementById('contact')){
ReactDOM.render(
<Contact />,
document.getElementById('contact')
)
}

ファイルの表示

@ -78,11 +78,11 @@ return [
],
'max' => [
'numeric' => 'The :attribute must not be greater than :max.',
'file' => 'The :attribute must not be greater than :max kilobytes.',
'file' => 'プロフィール画像は最大1M以内です。',
'string' => 'The :attribute must not be greater than :max characters.',
'array' => 'The :attribute must not have more than :max items.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'mimes' => 'ファイル形式は :values のみです。',
'mimetypes' => 'The :attribute must be a file of type: :values.',
'min' => [
'numeric' => 'The :attribute must be at least :min.',

41
backend/resources/sass/_variables.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,41 @@
// Body
$body-bg: #f8fafc;
// Typography
$font-family-sans-serif: 'Nunito', sans-serif;
$font-size-base: 0.9rem;
$line-height-base: 1.6;
// Colors
$blue: #3490dc;
$indigo: #6574cd;
$purple: #9561e2;
$pink: #f66d9b;
$red: #e3342f;
$orange: #f6993f;
$yellow: #ffed4a;
$green: #38c172;
$teal: #4dc0b5;
$cyan: #6cb2eb;
//------------------------
$color1: #F5F7F8;
$color2: #F0DE00;
$colorRed: #af0606;
$colorBlue: #004DC7;
$colorBlack: #000000;
$colorGray: #B2B2B2;
/* border color */
$borderColorGray: #eeeeee;
/* input color */
$inputBorderGray: #D8D8D8;
.bg-color-1{
background-color: $color1 !important;
}
.bg-color-2{
background-color: $color2 !important;
}

52
backend/resources/sass/app.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,52 @@
// Fonts
@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Nunito');
// Variables
@import 'variables';
$breakpoint-up: (
'pc': 'screen and (min-width: 1068px)',
'sp': 'screen and (min-width: 431px)',
'sp02': 'screen and (min-width: 375px)',
) !default;
$breakpoint-down: (
'sp': 'screen and (max-width: 1067px)',
'sp02': 'screen and (max-width: 430px)',
'min': 'screen and (max-width: 374px)',
) !default;
@mixin mq_up($breakpoint: md) {
@media #{map-get($breakpoint-up, $breakpoint)} {
@content;
}
}
@mixin mq_down($breakpoint: md) {
@media #{map-get($breakpoint-down, $breakpoint)} {
@content;
}
}
// Bootstrap
@import '~bootstrap/scss/bootstrap';
@import './base/layout';
@import './base/loader';
@import './base/color';
@import './base/font';
@import './base/_typography';
@import './layouts/main';
@import './component/alert';
@import './component/button';
@import './component/flex';
@import './component/img';
@import './component/input';
@import './component/list';

10
backend/resources/sass/base/_color.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,10 @@
.bg-red-4{ background-color: rgba(255, 0, 0, 0.4); }
.bg-red-6{ background-color: rgba(255, 0, 0, 0.6); }
.bg-black-4{ background-color: rgba(0, 0, 0, 0.4); }
.bg-black-6{ background-color: rgba(0, 0, 0, 0.6); }
.bg-black{ background-color: black; }
.bg-green{ background-color: #093100 }
.bg-green-6{ background-color: #093100; opacity: .6;}
.bg-none{ background-color: transparent; }
.bg-white-2{ background-color: rgb(255,255,255, .2) !important; }

32
backend/resources/sass/base/_font.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,32 @@
.ft-12{ font-size: 12px !important; }
.ft-13{ font-size: 13px !important; }
.ft-14{ font-size: 14px !important; }
.ft-15{ font-size: 15px !important; }
.ft-16{ font-size: 16px !important; }
.ft-17{ font-size: 17px !important; }
.ft-18{ font-size: 18px !important; }
.ft-19{ font-size: 19px !important; }
.ft-20{ font-size: 20px !important; }
.ft-30{ font-size: 30px !important; }
.ft-md-15{
@include media-breakpoint-down(md){
font-size: 15px !important;
}
}
.ft-md-20{
@include media-breakpoint-down(md){
font-size: 20px !important;
}
}
.text-black{ color:black !important;}

121
backend/resources/sass/base/_layout.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,121 @@
table, th, td{
padding: 5px !important;
@include media-breakpoint-down(md){
font-size: 16px !important;
}
}
.reviewRateStar{
font-family: 'Font Awesome 5 Free';
content: "\f005";
font-size: 1.8vw;
font-weight: 900;
}
span.star{
display: inline-block;
width: 80px;
line-height: 1;
vertical-align: middle;
margin-top: -1px;
font-size: 0;
}
pre{
font-family: inherit;
white-space: pre-wrap;
word-break: break-word;
height: 100%;
overflow-y: visible;
margin: 0;
}
.count{
float: right;
position: absolute;
// display: inline-block;
display: none;
padding: .2em .3em;
margin-top: 20px;
margin-right: -10px;
margin-left: -10px;
color: #fff;
font-size: 10px;
font-weight: bold;
line-height: 1.1;
letter-spacing: -.05em;
white-space: nowrap;
text-shadow: -1px -1px 1px rgb(0 0 0 / 15%);
background-color: #ff2e13;
border-radius: 3px;
z-index: 1010;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: subpixel-antialiased;
max-width: 5.03333em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
input[type=number] {
-moz-appearance: textfield;
}
::-webkit-scrollbar {
width: 20px;
}
::-webkit-scrollbar-track {
background-color: transparent;
}
::-webkit-scrollbar-thumb {
background-color: #d6dee1;
border-radius: 20px;
border: 6px solid transparent;
background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover {
background-color: #a8bbbf;
}
input[type='checkbox']{
border-radius: 0px;
// background-color: white;
border-color: #707070;
&:checked{
border-color: #707070;
background-image: url(/images/icon-checked.svg);
background-color: white;
background-size: 14px;
}
&:focus{
box-shadow: none;
}
}
input[type="date"].hide-calender{
&::-webkit-inner-spin-button,&::-webkit-calendar-picker-indicator{
display: none;
-webkit-appearance: none;
}
}

169
backend/resources/sass/base/_loader.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,169 @@
@use "sass:math";
.loader2-wrap{
display: none;
width: 100vw;
height: 100vh;
background-color: rgb(0,0,0,0.6);
top: 0px;
position: fixed;
.loading {
position: fixed;
margin: auto;
width: 4rem;
height: 4rem;
transform-style: preserve-3d;
perspective: 800px;
top: calc(50vh - 2rem);
left: calc(50vw - 2rem);
.arc {
position: absolute;
content: "";
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 50%;
border-bottom: 5px solid white;
@for $i from 1 through 3 {
&:nth-child(#{$i}) {
animation: rotate#{$i} 1.15s linear infinite;
}
}
&:nth-child(1) {
animation-delay: -0.8s;
}
&:nth-child(2) {
animation-delay: -0.4s;
}
&:nth-child(3) {
animation-delay: 0s;
}
}
}
@keyframes rotate1 {
from {
transform: rotateX(35deg) rotateY(-45deg) rotateZ(0);
}
to {
transform: rotateX(35deg) rotateY(-45deg) rotateZ(1turn);
}
}
@keyframes rotate2 {
from {
transform: rotateX(50deg) rotateY(10deg) rotateZ(0);
}
to {
transform: rotateX(50deg) rotateY(10deg) rotateZ(1turn);
}
}
@keyframes rotate3 {
from {
transform: rotateX(35deg) rotateY(55deg) rotateZ(0);
}
to {
transform: rotateX(35deg) rotateY(55deg) rotateZ(1turn);
}
}
}
.loader1-wrap {
display: none;
background-color: rgb(0,0,0,0.4);
position: fixed;
top: 0;
width: 100vw;
height: 100vh;
.ring {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
width:150px;
height:150px;
background:#262626;
border:3px solid #3c3c3c;
border-radius:50%;
text-align:center;
line-height:150px;
font-family:sans-serif;
font-size:20px;
color:#fff000;
letter-spacing:4px;
text-transform:uppercase;
text-shadow:0 0 10px #fff000;
box-shadow:0 0 20px rgba(0,0,0,.5);
}
.ring:before {
content:'';
position:absolute;
top:-3px;
left:-3px;
width:150px;
height:150px;
border:3px solid transparent;
border-top:3px solid #fff000;
border-right:3px solid #fff000;
border-radius:50%;
animation:animateC 2s linear infinite;
}
#loading {
display:block;
position:absolute;
top:calc(50% - 2px);
left:50%;
width:50%;
height:4px;
background:transparent;
transform-origin:left;
animation:animate 2s linear infinite;
}
#loading:before {
content:'';
position:absolute;
width:16px;
height:16px;
border-radius:50%;
background:#fff000;
top:-6px;
right:-8px;
box-shadow:0 0 20px #fff000;
}
@keyframes animateC
{
0% {
transform:rotate(0deg);
}
100% {
transform:rotate(360deg);
}
}
@keyframes animate
{
0% {
transform:rotate(45deg);
}
100% {
transform:rotate(405deg);
}
}
}

49
backend/resources/sass/base/_typography.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,49 @@
.shadow-lg{ box-shadow: 0 0 8px #000 !important; }
.w-30{ width: 30% !important; }
.w-md-25{
@include media-breakpoint-down(md){
width: 25% !important;
}
}
.w-md-50{
@include media-breakpoint-down(md){
width: 50% !important;
}
}
.w-md-75{
@include media-breakpoint-down(md){
width: 75% !important;
}
}
.rounded-right-20{
border-top-right-radius: 20px;
border-bottom-right-radius: 20px;
}
.rounded-top-15{
border-top-right-radius: 15px;
border-top-left-radius: 15px;
}
.rounded-15{
border-radius: 15px !important;
}
.rounded-20{
border-radius: 20px !important;
}
.rounded-top-20{
border-top-right-radius: 20px;
border-top-left-radius: 20px;
}
.mt-80-px{
margin-top: 80px;
}

36
backend/resources/sass/component/_alert.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,36 @@
/*
モーダルエラー
*/
.alert {
position: fixed;
top: 0;
right: 0;
left: 0;
width: 100%;
padding: 24px 16px;
text-align: center;
color: #fff;
font-weight: 700;
// duration | timing-function | delay | iteration-count | direction | fill-mode | play-state | name
animation: .5s ease-out 1.8s 1 normal forwards running fadeOut;
}
.alert-danger {
@extend .alert;
background: rgba(175, 6, 6, .95);
}
.alert-success {
@extend .alert;
background: rgba(46, 153, 232, .95);
}
/*
テキストエラー
*/
.l-alert__text--red {
display: block;
margin-top: 8px;
width: 100%;
padding: 8px;
color: #ff4747;
background: #ffeaea;
}

45
backend/resources/sass/component/_button.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,45 @@
.c-button {
text-align: center;
margin: auto;
}
.c-button__target {
border-radius: 7px;
display: inline-block;
width: auto;
height: auto;
}
/* top emphasis */
.c-button__target--fab {}
/* high emphasis */
.c-button__target--contained {
@extend .c-button__target;
background: $colorBlack;
color: #fff;
padding: 10px 16px;
font-weight: 700;
}
/* medium emphasis */
.c-button__target--outlined {
@extend .c-button__target;
border: 1px solid $inputBorderGray;
padding: 10px 16px;
font-weight: 700;
}
/* low emphasis */
.c-button__target--text {
color: $colorBlue;
}
/* bottom emphasis */
.c-button__target--toggle {}
.c-button--long {
max-width: 300px;
width: 100%;
margin: auto;
}

76
backend/resources/sass/component/_flex.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,76 @@
// .c-flex {
// display:-webkit-box;
// display:-ms-flexbox;
// display:flex;
// -ms-flex-wrap: wrap;
// flex-wrap: wrap;
// }
// .c-flex__sp {
// @include mq_down(md) {
// display:-webkit-box;
// display:-ms-flexbox;
// display:flex;
// -ms-flex-wrap: wrap;
// flex-wrap: wrap;
// }
// }
// .c-flex__pc {
// @include mq_up(md) {
// display:-webkit-box;
// display:-ms-flexbox;
// display:flex;
// -ms-flex-wrap: wrap;
// flex-wrap: wrap;
// }
// }
// .c-flex,
// .c-flex__sp,
// .c-flex__pc {
// &.v-center {
// // 高さ中央揃え
// -webkit-box-align: center;
// -ms-flex-align: center;
// align-items: center;
// }
// &.v-top {
// // 高さ上揃え
// -webkit-box-align: start;
// -ms-flex-align: start;
// align-items: flex-start;
// }
// &.v-center__sp {
// @include mq_down(md) {
// // 高さ中央揃え
// -webkit-box-align: center;
// -ms-flex-align: center;
// align-items: center;
// }
// }
// &.v-center__pc {
// @include mq_up(md) {
// // 高さ中央揃え
// -webkit-box-align: center;
// -ms-flex-align: center;
// align-items: center;
// }
// }
// &.h-center {
// // 中央揃え
// -webkit-box-pack: center;
// -ms-flex-pack: center;
// justify-content: center;
// }
// &.h-between {
// // 左右揃え
// -webkit-box-pack: center;
// -ms-flex-pack: justify;
// justify-content: space-between;
// }
// &.h-left {
// // 左寄せ
// -webkit-box-pack: start;
// -ms-flex-pack: start;
// justify-content: flex-start;
// }
// }

53
backend/resources/sass/component/_img.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,53 @@
.c-img--cover {
position: relative;
display: block;
&:before {
content: "";
padding-top: 100%;
display: block;
}
img {
position: absolute;
object-fit: cover;
font-family: 'object-fit: cover;';
height: 100%;
width: 100%;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
}
.c-img--contain {
position: relative;
display: block;
img {
position: absolute;
object-fit: contain;
font-family: 'object-fit: contain;';
height: 100%;
width: 100%;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
}
/*
画像サークル
*/
.c-img__circle {
border-radius: 50%;
overflow: hidden;
}
/*
アイコン画像
*/
.c-img--icon {
width: 45px;
height: 45px;
border-radius: 50%;
overflow: hidden;
}

156
backend/resources/sass/component/_input.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,156 @@
.c-input {
position: relative;
textarea{
resize: none;
}
}
.c-input__edit{
padding: 9px 15px;
border-radius: 15px;
border: 1px solid gainsboro;
&:focus{
border: 2px solid #3490dc !important;
box-shadow: none !important;
}
}
/*
label
*/
.c-input__label {
display: block;
position: absolute;
pointer-events: none;
padding: 0px 10px;
background: #fff;
top: -12px;
left: 15px;
font-size: 13px;
color: #B2B2B2;
// transition: .3s;
// transform: translate(10px, 12px) scale(1);
// &.is-active, &.is-text {
// transform: translate(6px, -10px);
// font-size: 10px;
// color: $colorBlack;
// }
}
.c-input__target {
&.is-invalid {
border: 1px solid #ff9999;
}
}
/*
checkbox
*/
.c-input__checkbox {
display: block;
position: relative;
padding-left: 20px;
padding-top: 3px;
input[type=checkbox],
input[type=radio] {
position: absolute;
z-index: -1;
opacity: 0;
left: 0;
}
label {
padding-top: 5px;
padding-left: 10px;
}
.color-box {
position: absolute;
// top: 2px;
top: 9px;
left: 0;
height: 20px;
width: 20px;
border-radius: 5px;
background: #fff;
border: 1px solid #C3C3C3;
&.circle {
border-radius: 50%;
}
&:after {
content: '';
position: absolute;
display: none;
left: 7px;
top: 4px;
width: 4px;
height: 9px;
border: solid #fff;
border-width: 0 2px 2px 0;
transform: rotate(45deg);
}
}
}
.c-input__checkbox input:checked ~ .color-box {
background: #000;
border: 1px solid #000;
&:after {
display: block;
}
}
/*
list
*/
.c-input__lists {
display:-webkit-box;
display:-ms-flexbox;
display:flex;
/* 横幅いっぱい */
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
/* 横並び */
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
.c-input__list {
position: relative;
margin-right: 10px;
margin-bottom: 10px;
label {
cursor: pointer;
color: #cccccc;
padding: 5px 20px;
border: 1px solid #C3C3C3;
display: inline-block;
border-radius: 30px;
transition: .2s;
}
input {
position: absolute;
z-index: 1;
opacity: 0;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
&:checked ~ label {
color: #fff;
background: #000;
border: 1px solid #000;
}
&.non-check + label {
background: #ddd !important;
}
&:disabled + label {
background: #eee;
}
}
}
}

9
backend/resources/sass/component/_list.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,9 @@
.c-lists {
.c-list {
margin-bottom: 16px;
&:last-child {
margin-bottom: 0;
}
.c-list__target {}
}
}

127
backend/resources/sass/layouts/_main.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,127 @@
.l-centeringbox{
width: 100%;
height: 100%;
&-wrap{
position: absolute;
top: 0;
left: 50%;
transform: translate(-50%,0);
width: 100%;
border-radius: 20px;
box-sizing: border-box;
@include media-breakpoint-up(lg) {
padding: 192px 0;
}
}
}
.l-single {
&-main{
min-height: 100vh; /* Fallback */
min-height: calc(var(--vh, 1vh) * 100);
}
&-container{
max-width: 540px;
width: 100%;
margin: 0 auto;
border-radius: 8px;
padding: 50px 24px 70px;
background: #fff;
box-sizing: border-box;
display: block;
@include media-breakpoint-up(lg) {
width: 540px;
max-width: none;
box-shadow: 0 1px 4px #9b8989;
padding: 60px 60px 60px;
}
h1{
font-size: 3rem;
text-align: center;
margin-bottom: 35px;
line-height: 1;
@include media-breakpoint-up(lg) {
margin-bottom: 35px;
font-size: 2.8rem;
}
@include media-breakpoint-down(md) {
letter-spacing: 0.02em;
}
@include media-breakpoint-down(sm) {
font-size: 2.8rem;
}
}
}
&-inner{
width: 100%;
margin: 0 auto;
width: 410px;
@include media-breakpoint-down(md) {
width: 100%;
}
.form-group{
margin: 0 0 17px;
@include media-breakpoint-up(lg) {
margin: 0 0 20px;
}
}
}
}
.l-registration{
.l-single-container h1{
@include media-breakpoint-up(lg) {
margin-bottom: 40px;
}
}
}
.l-container{
display: flex;
flex-flow: row-reverse;
background: #fff;
justify-content: flex-end;
@include media-breakpoint-up(lg) {
// background: $_color-bg02;
}
}
.l-content{
max-width: 540px;
width: 100%;
margin: 0 auto;
border-radius: 8px;
padding: 30px 20px 70px;
background: #fff;
box-sizing: border-box;
display: block;
@include media-breakpoint-up(lg) {
width: 540px;
max-width: none;
padding: 60px 60px 60px;
}
h1{
font-size: 3rem;
text-align: center;
margin-bottom: 35px;
line-height: 1;
@include media-breakpoint-up(lg) {
margin-bottom: 35px;
font-size: 2.8rem;
}
@include media-breakpoint-down(md) {
letter-spacing: 0.02em;
}
@include media-breakpoint-down(sm) {
font-size: 2.8rem;
}
}
}

バイナリ
backend/resources/sass_____1/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

228
backend/resources/sass_____1/app.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,228 @@
@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Nunito');
/**
* VARIABLE
* global...サイト全体に使用するサイズや数値に関する変数です
* breakpoint...メディアクエリで使用するブレイクポイントです
* font-family...font-family指定をまとめています
* color...グローバルに使用する色指定です
* z-index...z-indexの並び順を管理します
* easing...cubic-bezier関数を使用したタイミング関数を定義しています
*
* FUNCTION
* strip-unit...pxやremなどの単位を取り除きます
* em...pxをemに変換します
* rem...pxをremに変換します
* tint...白色を加えて明度を明るくします
* shade...黒色を加えて明度を暗くします
* z-index...z-indexの並び順を管理します
* tracking...Photoshopのカーニングをemに変換します
*
* MIXIN
* mq-up...メディアクエリを`min-width`で挿入します
* mq-down...メディアクエリを`max-width`で挿入します
* responsive...レスポンシブ対応クラスを生成します
* clearfix...floatの解除をします
* on-event...:hover, :active, :focusをまとめて指定します
* sr-only...非表示にしてスクリーンリーダーにだけ読み上げさせます
*
* BASE
* normalize...Normalize.cssをインポートしています
* base...タイプセレクタと属性セレクタのデフォルトスタイルです
*
* LAYOUT
* header...ヘッダーエリアのコンテナブロックのスタイルです
* footer...フッターエリアのコンテナブロックのスタイルです
* main...コンテンツエリアのコンテナブロックのスタイルです
* side...サイドバーエリアのコンテナブロックのスタイルです
* section...`<section>`要素を使うようなセクションの余白を管理します
*
* COMPONENT
* wrapper...最大幅を指定します
* layout...汎用的なレイアウトオブジェクトですグリッドレイアウトなどに使用できます
* media...画像とテキストが横並びになるオブジェクトです
* list-unstyled...`<ul>``<ol>`でデフォルトスタイルをリセットします
* embed...Youtubeなどをアスペクト比を固定してレスポンシブ対応させる場合に使用します
* table...tableのレイアウトアルゴリズムの変更余白の変更をします
*
* PROJECT
* icon...アイコンフォントですテンプレートから自動で生成されます
* icon-extend...アイコンフォントを拡張するModifierです
* button...ボタンコンポーネントです
* breadcrumb...パンくずリストコンポーネントです
* label...インラインのラベルコンポーネントです
* badge...投稿数のような数値を表示するバッジコンポーネントです
* card...カードタイプのコンポーネントです
* split...定義リストをブロックからインラインにするコンポーネントです
* notification...お知らせエリアのコンポーネントです
*
* SCOPE
* blog...ブログページのスタイルです
*
* UTILITY
* text...テキストのスタイルに関する汎用クラスです
* image...画像のレイアウトに関する汎用クラスです
* margin...マージンで余白の管理をします常に下方向にだけ余白をとります
* display...要素の表示や改行をコントロールする場合に使用します
* width...おもにグリッドで使用する`width`を指定する汎用クラスです
* offset...おもにグリッドで使用する`margin-right`を指定する汎用クラスです
* percent...`width`プロパティを5%刻みで指定する汎用クラスです
*/
/**
* このスタイルシートは[FLOCSS](https://github.com/hiloki/flocss)をベースにしています
* 定義されているレイヤー以外にもThemeやTestなどのレイヤーを追加することもできます
* 詳しくは[CSSコーディングルール](https://github.com/manabuyasuda/styleguide/blob/master/css-coding-rule.md#flocss)を参照してください
*/
/* =============================================================================
#Foundation
========================================================================== */
//
// Sassの変数と関数を定義します
// 変数は用途ごとにモジュール化関数は機能ごとにモジュール化をします
// プレフィックス接頭辞として`_`をつけます
@import "./foundation/mixin/box";
@import "./foundation/mixin/clearfix";
@import "./foundation/mixin/layout";
@import "./foundation/mixin/on-event";
@import "./foundation/mixin/pc";
@import "./foundation/mixin/responsive";
@import "./foundation/mixin/sp";
@import "./foundation/mixin/sr-only";
// //
// @import "./foundation/variable/animation";
@import "./foundation/variable/breakpoint";
@import "./foundation/variable/color";
@import "./foundation/variable/easing";
@import "./foundation/variable/font-family";
@import "./foundation/variable/global";
@import "./foundation/variable/z-index";
@import "foundation/function/_em";
@import "foundation/function/_rem";
@import "foundation/function/_tint";
@import "foundation/function/_shade";
/**
* Foundationレイヤーでは`html``body`のような広範囲にわたるベーススタイル
* `h2``ul`のような基本的なタイプセレクタのデフォルトスタイルを定義します
* 装飾的なスタイルは避けてできる限り低詳細度に保ちますidセレクタやclassセレクタは使用しません
*/
@import "foundation/base/normalize";
@import "foundation/base/base";
@import "foundation/base/reset";
/* =============================================================================
#Layout
========================================================================== */
/**
* Layoutレイヤーはヘッダーやフッターのようなページを構成するコンテナブロックのスタイルを定義します
* 目安としてはワイヤーフレームに書かれるような大きな単位のブロックです
* 汎用性のあるグリッドシステムは次のObject/Componentレイヤーで定義します
* グローバルナビゲーションやコピーライトのようなコンポーネントはObject/Projectレイヤーで定義します
* 基本的にはclass属性を使用しますがid属性を使用することもできます
* プレフィックス接頭辞として`l-`をつけます
*/
@import "./layout/content";
@import "./layout/footer";
@import "./layout/header";
@import "./layout/main";
@import "./layout/section";
@import "./layout/side";
/* =============================================================================
#Object
========================================================================== */
/**
* Objectレイヤーはプロジェクトにおけるビジュアルパターンです抽象度や詳細度
* 拡張性などによって4つのレイヤーにわけられます
* それぞれのレイヤーにはプレフィックス接頭辞をつけます
* 1. Component`c-`
* 2. Project`p-`
* 3. Scope(`s-`)
* 4. Utility`u-`
*
* ランディングページのようにページ特有のスタイルを多く含む場合は
* ページ専用のCSSファイルを作成することもできます
* ページ専用のスタイルはそのページにだけ読み込ませることでスコープをつくり
* プレフィックス接頭辞をつけないことで名前の重複を防ぎます
*/
/* -----------------------------------------------------------------------------
#Component
-------------------------------------------------------------------------- */
/**
* Componentレイヤーは多くのプロジェクトで横断的に再利用のできるような小さな単位のモジュール機能です
* OOCSSの構造structureの機能を担うため装飾的なスタイルをできるだけ含めないようにします
* また`width``margin`といったレイアウトに影響を与えるプロパティもできるだけ含めないようにします
* 例えばgridやmediaといったレイアウトパターンが該当します
* プレフィックス接頭辞として`c-`をつけます
*/
@import "object/component/_wrapper";
@import "object/component/_layout";
@import "object/component/_table";
/* -----------------------------------------------------------------------------
#Project
-------------------------------------------------------------------------- */
/**
* Projectレイヤーはプロジェクト固有のパターンで複数のページで使い回せるようなコンポーネントです
* 具体的なスタイルを持つUIユーザーフェイス追加されるコンポーネントのほとんどはこのレイヤーに置かれます
* もしこのレイヤーで同じパターンが3箇所で使われていたら別のコンポーネントとしてまとめられないか検討しましょう
* プレフィックス接頭辞として`p-`をつけます
*/
@import "object/project/article";
@import "object/project/box";
@import "object/project/breadcrumb";
@import "object/project/button";
@import "object/project/card";
@import "object/project/edit";
@import "object/project/form";
@import "object/project/icon-extend";
@import "object/project/icon";
@import "object/project/label";
@import "object/project/login";
@import "object/project/meeting";
@import "object/project/modal";
@import "object/project/notification";
@import "object/project/profile";
@import "object/project/search";
@import "object/project/user";
/* -----------------------------------------------------------------------------
#Scope
-------------------------------------------------------------------------- */
/**
* ComponentレイヤーやProjectレイヤーのようなコンポーネント単位ではなく
* ページ単位や任意の範囲スコープでのスタイルを定義します1箇所でしか使わないような特異なスタイルや
* ページ単位でComponentやProjectレイヤーのスタイルを微調整したい場合に使用してもかまいません
* 例えばブログページのスタイルとして_blog.scssを作成します
* このレイヤーでは`.s-blog p`のような要素セレクタとの結合子も使うこともできます
* もしこのレイヤーで同じパターンが3箇所で使われていたら
* ProjectレイヤーやUtilityレイヤーでまとめられないか検討しましょう
* プレフィックス接頭辞として`s-`をつけます
*/
// @import "object/scope/_blog";
/* -----------------------------------------------------------------------------
#Utility
-------------------------------------------------------------------------- */
/**
* Utilityレイヤーはいわゆる汎用クラスでほとんどの場合は単一のスタイルをもっています
* コンポーネント間の間隔を調整したりBEMのModifierが増えすぎるのを防ぎます
* `.mb10`のような具体的な名前より`.mb-small`のような相対的な名前にしたり
* pxよりもemや%で指定することを推奨します
* 確実にスタイルを適応させるために`!important`を使用します
* プレフィックス接頭辞として`u-`をつけます
*/
@import "object/utility/align";
@import "object/utility/display";
@import "object/utility/margin";
@import "object/utility/percent";
@import "object/utility/sr-only";
@import "object/utility/text";

バイナリ
backend/resources/sass_____1/assets/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/resources/sass_____1/assets/css/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

27
backend/resources/sass_____1/assets/css/single.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,27 @@
// -----------------------------------------------------------------------------
// #Single
// -----------------------------------------------------------------------------
// 各HTMLファイル専用のscssファイルで読み込む変数と関数をまとめています
// variable, function, mixinレイヤーでファイルを追加した場合はこのファイルにも追記してください
// `/css/single.scss` では以下のパスでインポートします
// @import "../assets/css/single";
@import "../../foundation/variable/_global";
@import "../../foundation/variable/_breakpoint";
@import "../../foundation/variable/_font-family";
@import "../../foundation/variable/_color";
@import "../../foundation/variable/_z-index";
@import "../../foundation/variable/_easing";
@import "../../foundation/function/_em";
@import "../../foundation/function/_rem";
@import "../../foundation/function/_tint";
@import "../../foundation/function/_shade";
@import "../../foundation/mixin/_pc";
@import "../../foundation/mixin/_sp";
@import "../../foundation/mixin/_responsive";
@import "../../foundation/mixin/_clearfix";
@import "../../foundation/mixin/_on-event";
@import "../../foundation/mixin/_sr-only";
@import "../../foundation/mixin/_layout";

243
backend/resources/sass_____1/assets/css/style.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,243 @@
@charset "UTF-8";
/**
* VARIABLE
* global...サイト全体に使用するサイズや数値に関する変数です
* breakpoint...メディアクエリで使用するブレイクポイントです
* font-family...font-family指定をまとめています
* color...グローバルに使用する色指定です
* z-index...z-indexの並び順を管理します
* easing...cubic-bezier関数を使用したタイミング関数を定義しています
*
* FUNCTION
* strip-unit...pxやremなどの単位を取り除きます
* em...pxをemに変換します
* rem...pxをremに変換します
* tint...白色を加えて明度を明るくします
* shade...黒色を加えて明度を暗くします
* z-index...z-indexの並び順を管理します
* tracking...Photoshopのカーニングをemに変換します
*
* MIXIN
* mq-up...メディアクエリを`min-width`で挿入します
* mq-down...メディアクエリを`max-width`で挿入します
* responsive...レスポンシブ対応クラスを生成します
* clearfix...floatの解除をします
* on-event...:hover, :active, :focusをまとめて指定します
* sr-only...非表示にしてスクリーンリーダーにだけ読み上げさせます
* layout...layoutオブジェクトのベーススタイルです
* media...mediaオブジェクトのベーススタイルです
* flag...flagオブジェクトのベーススタイルです
* list-unstyled...list-unstyledオブジェクトのベーススタイルです
* list-mark...list-markオブジェクトのベーススタイルです
* ratio...ratioオブジェクトのベーススタイルです
* box...boxオブジェクトのベーススタイルです
*
* BASE
* normalize...Normalize.cssをインポートしています
* base...タイプセレクタと属性セレクタのデフォルトスタイルです
*
* LAYOUT
* header...`<body>`タグ直下にある`<header>`タグのスタイルです
* footer...`<body>`タグ直下にある`<footer>`タグのスタイルです
* main...`<main>`タグのスタイルです
* content...`<article>`タグが使われるようなメインコンテンツのスタイルです
* side...`<aside>`タグが使われるようなサイドバーのスタイルです
* section...`<section>`要素を使うようなセクションの余白を管理します
*
* COMPONENT
* wrapper...最大幅を指定します
* layout...汎用的なレイアウトオブジェクトですグリッドレイアウトなどに使用できます
* media...画像とテキストが横並びになるオブジェクトですテキストを画像に回り込みさせます
* flag...画像とテキストが横並びになるオブジェクトです縦方向の指定ができます
* list-unstyled...`<ul>``<ol>`でデフォルトスタイルをリセットします
* list-ordered...番号付きリストを入れ子レベルに応じて1, 1.1のように区切り文字を付け加えます
* list-mark...リストアイテムの左にアイコンを配置します
* embed...Youtubeなどをアスペクト比を固定してレスポンシブ対応させる場合に使用します
* ratio...アスペクト比を固定したまま伸縮させます
* table...tableのレイアウトアルゴリズムの変更余白の変更をします
*
* PROJECT
* icon...アイコンフォントですテンプレートから自動で生成されます
* icon-extend...アイコンフォントを拡張するModifierです
* button...ボタンコンポーネントです
* breadcrumb...パンくずリストコンポーネントです
* label...インラインのラベルコンポーネントです
* box...画像やテキストなどを縦に並べるコンポーネントです
* card...カードタイプのコンポーネントです
* notification...お知らせエリアのコンポーネントです
* meeting...ミーティングエリアのコンポーネントです
* article...詳細ページのコンポーネントです
* modal...モーダルのコンポーネントです
* search...検索ページのコンポーネントです
* profile...プロフィールページのコンポーネントです
* edit...エディットページのコンポーネントです
*
* SCOPE
* blog...ブログページのスタイルです
*
* UTILITY
* text...テキストのスタイルに関する汎用クラスです
* align...画像などを中央や右側に配置します
* margin...マージンで余白の管理をします常に下方向にだけ余白をとります
* display...要素の表示や改行をコントロールする場合に使用します
* width...おもにグリッドで使用する`width`を指定する汎用クラスです
* offset...おもにグリッドで使用する`margin-right`を指定する汎用クラスです
* percent...`width`プロパティを5%刻みで指定する汎用クラスです
* sr-only...要素を非表示にさせますがスクリーンリーダーには読み上げられます
*/
/**
* このスタイルシートは[FLOCSS](https://github.com/hiloki/flocss)をベースにしています
* 定義されているレイヤー以外にもThemeやTestなどのレイヤーを追加することもできます
* 詳しくは[CSSコーディングルール](https://github.com/manabuyasuda/styleguide/blob/master/css-coding-rule.md#flocss)を参照してください
*/
/* =============================================================================
#Foundation
========================================================================== */
//
// Sassの変数と関数を定義します
// 変数は用途ごとにモジュール化関数は機能ごとにモジュール化をします
// プレフィックス接頭辞として`_`をつけます
//
@import"../../foundation/variable/_global";
@import "../../foundation/variable/_breakpoint";
@import "../../foundation/variable/_font-family";
@import "../../foundation/variable/_color";
@import "../../foundation/variable/_z-index";
@import "../../foundation/variable/_easing";
@import "../../foundation/function/_em";
@import "../../foundation/function/_rem";
@import "../../foundation/function/_tint";
@import "../../foundation/function/_shade";
@import "../../foundation/mixin/_pc";
@import "../../foundation/mixin/_sp";
@import "../../foundation/mixin/_responsive";
@import "../../foundation/mixin/_clearfix";
@import "../../foundation/mixin/_on-event";
@import "../../foundation/mixin/_sr-only";
@import "../../foundation/mixin/_layout";
@import "../../foundation/mixin/_box";
/**
* Foundationレイヤーでは`html``body`のような広範囲にわたるベーススタイル
* `h2``ul`のような基本的なタイプセレクタのデフォルトスタイルを定義します
* 装飾的なスタイルは避けてできる限り低詳細度に保ちますidセレクタやclassセレクタは使用しません
*/
@import "../../foundation/base/_normalize";
@import "../../foundation/base/_reset";
@import "../../foundation/base/_base";
/* =============================================================================
#Layout
========================================================================== */
/**
* Layoutレイヤーはヘッダーやフッターのようなページを構成するコンテナブロックのスタイルを定義します
* 目安としてはワイヤーフレームに書かれるような大きな単位のブロックです
* 汎用性のあるグリッドシステムは次のObject/Componentレイヤーで定義します
* グローバルナビゲーションやコピーライトのようなコンポーネントはObject/Projectレイヤーで定義します
* 基本的にはclass属性を使用しますがid属性を使用することもできます
* プレフィックス接頭辞として`l-`をつけます
*/
@import "../../layout/_header";
@import "../../layout/_footer";
@import "../../layout/_main";
@import "../../layout/_content";
@import "../../layout/_side";
@import "../../layout/_section";
/* =============================================================================
#Object
========================================================================== */
/**
* Objectレイヤーはプロジェクトにおけるビジュアルパターンです抽象度や詳細度
* 拡張性などによって4つのレイヤーにわけられます
* それぞれのレイヤーにはプレフィックス接頭辞をつけます
* 1. Component`c-`
* 2. Project`p-`
* 3. Scope(`s-`)
* 4. Utility`u-`
*
* ランディングページのようにページ特有のスタイルを多く含む場合は
* ページ専用のCSSファイルを作成することもできます
* ページ専用のスタイルはそのページにだけ読み込ませることでスコープをつくり
* プレフィックス接頭辞をつけないことで名前の重複を防ぎます
*/
/* -----------------------------------------------------------------------------
#Component
-------------------------------------------------------------------------- */
/**
* Componentレイヤーは多くのプロジェクトで横断的に再利用のできるような小さな単位のモジュール機能です
* OOCSSの構造structureの機能を担うため装飾的なスタイルをできるだけ含めないようにします
* また`width``margin`といったレイアウトに影響を与えるプロパティもできるだけ含めないようにします
* 例えばgridやmediaといったレイアウトパターンが該当します
* プレフィックス接頭辞として`c-`をつけます
*/
@import "../../object/component/_wrapper";
@import "../../object/component/_layout";
/* -----------------------------------------------------------------------------
#Project
-------------------------------------------------------------------------- */
/**
* Projectレイヤーはプロジェクト固有のパターンで複数のページで使い回せるようなコンポーネントです
* 具体的なスタイルを持つUIユーザーフェイス追加されるコンポーネントのほとんどはこのレイヤーに置かれます
* もしこのレイヤーで同じパターンが3箇所で使われていたら別のコンポーネントとしてまとめられないか検討しましょう
* プレフィックス接頭辞として`p-`をつけます
*/
@import "../../object/project/_icon";
@import "../../object/project/_icon-extend";
@import "../../object/project/_button";
@import "../../object/project/_breadcrumb";
@import "../../object/project/_label";
@import "../../object/project/_box";
@import "../../object/project/_card";
@import "../../object/project/_form";
@import "../../object/project/_login";
@import "../../object/project/_user";
@import "../../object/project/_notification";
@import "../../object/project/_meeting";
@import "../../object/project/_article.scss";
@import "../../object/project/_modal.scss";
@import "../../object/project/_search.scss";
@import "../../object/project/_profile.scss";
@import "../../object/project/_edit.scss";
/* -----------------------------------------------------------------------------
#Scope
-------------------------------------------------------------------------- */
/**
* ComponentレイヤーやProjectレイヤーのようなコンポーネント単位ではなく
* ページ単位や任意の範囲スコープでのスタイルを定義します1箇所でしか使わないような特異なスタイルや
* ページ単位でComponentやProjectレイヤーのスタイルを微調整したい場合に使用してもかまいません
* 例えばブログページのスタイルとして_blog.scssを作成します
* このレイヤーでは`.s-blog p`のような要素セレクタとの結合子も使うこともできます
* もしこのレイヤーで同じパターンが3箇所で使われていたら
* ProjectレイヤーやUtilityレイヤーでまとめられないか検討しましょう
* プレフィックス接頭辞として`s-`をつけます
*/
@import "../../object/scope/_blog";
/* -----------------------------------------------------------------------------
#Utility
-------------------------------------------------------------------------- */
/**
* Utilityレイヤーはいわゆる汎用クラスでほとんどの場合は単一のスタイルをもっています
* コンポーネント間の間隔を調整したりBEMのModifierが増えすぎるのを防ぎます
* `.mb10`のような具体的な名前より`.mb-small`のような相対的な名前にしたり
* pxよりもemや%で指定することを推奨します
* 確実にスタイルを適応させるために`!important`を使用します
* プレフィックス接頭辞として`u-`をつけます
*/
@import "../../object/utility/_text";
@import "../../object/utility/_align";
@import "../../object/utility/_margin";
@import "../../object/utility/_display";
@import "../../object/utility/_percent";
@import "../../object/utility/_sr-only";

バイナリ
backend/resources/sass_____1/foundation/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/resources/sass_____1/foundation/base/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

159
backend/resources/sass_____1/foundation/base/_base.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,159 @@
/* #Base
-------------------------------------------------------------------------- */
/**
* Baseレイヤーにはプロジェクトにおける基本的なベーススタイルを定義します
* 要素セレクタや属性セレクタなど詳細度はできるかぎり低く保っておきます
* 基本的にclass属性は使用しません
*/
/**
* `padding``border``width`に含めます
* https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
*/
html {
overflow-x: hidden;
font-size: 62.5%;
min-height: 100%;
}
body {
min-width: 320px;
background: #fff;
font-family: "Open Sans", "Myriad", Helvetica, Arial, sans-serif;
@include pc{
background: #F7FAFC;
}
}
body, button, code, input, optgroup, pre, select, textarea {
color: #080808;
font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, Segoe UI, Hiragino Kaku Gothic ProN, Hiragino Sans, ProN W3, Arial, , Meiryo, sans-serif;
font-size: 1.6rem;
word-wrap: break-word;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
-moz-font-smoothing: antialiased;
font-smoothing: antialiased;
-webkit-font-feature-settings: "kern";
font-feature-settings: "kern";
-webkit-font-kerning: normal;
font-kerning: normal;
line-height: 1.6;
}
input[type=number], input[type=url], input[type=tel], input[type=text], input[type=email], input[type=password], select, textarea {
font-family: inherit;
-webkit-appearance: none;
}
img[src$=".svg"]:not([width]), img[src*=".svg?"]:not([width]) {
}
img, legend {
max-width: 100%
}
progress, sub, sup {
vertical-align: baseline
}
body, svg:not(:root) {
overflow: hidden
}
a, legend {
color: inherit
}
a[href^="tel:"] {
cursor: text;
pointer-events: none;
text-decoration: none
}
[type=submit], a, button{
cursor: pointer;
text-decoration: none;
}
ol, ul{
list-style: none;
}
button{
padding: 0;
}
button:focus {
outline: 0
}
input[type="checkbox"], input[type="radio"]{
margin-right: 0.5em;
margin-top: -2px;
}
input[type=number], input[type=url], input[type=tel], input[type=text], input[type=email], input[type=password], input[type=search], select, textarea {
border: 1px solid #D0D0D0;
background-color: #fff;
outline: 0!important;
width: 100%;
border-radius: 10px;
padding: 12px 18px;
font-weight: 400;
color: #414141;
box-sizing: border-box;
-webkit-appearance: none;
@include pc{
padding: 15px 20px;
border-radius: 14px;
}
}
input[type=search]{
@include pc{
padding-right: 52px;
}
@include sp{
padding-right: 40px;
}
}
html:not(.sp) input[type=number]:focus, html:not(.sp) input[type=url]:focus, html:not(.sp) input[type=tel]:focus, html:not(.sp) input[type=text]:focus,
html:not(.sp) input[type=email]:focus, html:not(.sp) input[type=password]:focus, html:not(.sp) select:focus, html:not(.sp) textarea:focus{
border-color: #00c4ac;
background-color: #fff;
-webkit-transition: all 0.2s ease-out;
transition: all 0.2s ease-out;
}
html.sp input[type=number], html.sp input[type=url], html.sp input[type=tel], html.sp input[type=text], html.sp input[type=email], html.sp input[type=password], html.sp select, html.sp textarea {
font-size: 16px!important;
font-size: 1.6rem!important
}
input[type=file]{
display: none;
}
select {
-moz-appearance: none;
background-color: #fff
}
input[type=number]::-webkit-input-placeholder, input[type=url]::-webkit-input-placeholder, input[type=tel]::-webkit-input-placeholder, input[type=text]::-webkit-input-placeholder, input[type=email]::-webkit-input-placeholder, input[type=password]::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
color: #999;
font-size: 1.6rem;
}
input[type=number]:-ms-input-placeholder, input[type=url]:-ms-input-placeholder, input[type=tel]:-ms-input-placeholder, input[type=text]:-ms-input-placeholder, input[type=email]:-ms-input-placeholder, input[type=password]:-ms-input-placeholder, textarea:-ms-input-placeholder {
color: #999;
font-size: 1.6rem;
}
input[type=number]::-moz-placeholder, input[type=url]::-moz-placeholder, input[type=tel]::-moz-placeholder, input[type=text]::-moz-placeholder, input[type=email]::-moz-placeholder, input[type=password]::-moz-placeholder, textarea::-moz-placeholder {
color: #999;
font-size: 1.6rem;
}
h1,h2,h3,h4,h5{
font-weight: bold;
}

427
backend/resources/sass_____1/foundation/base/_normalize.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,427 @@
/* #Normalize.css
-------------------------------------------------------------------------- */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS and IE text size adjust after device orientation change,
* without disabling user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
* Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* Improve readability of focused elements when they are also in an
* active/hover state.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 1em 40px;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
box-sizing: content-box; /* 2 */
}
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}

105
backend/resources/sass_____1/foundation/base/_reset.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,105 @@
/* #Reset.css
-------------------------------------------------------------------------- */
/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
body {
line-height:1;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
display:block;
}
nav ul {
list-style:none;
}
blockquote, q {
quotes:none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content:'';
content:none;
}
a {
margin:0;
padding:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
/* change colours to suit your needs */
ins {
background-color:#ff9;
color:#000;
text-decoration:none;
}
/* change colours to suit your needs */
mark {
background-color:#ff9;
color:#000;
font-style:italic;
font-weight:bold;
}
del {
text-decoration: line-through;
}
abbr[title], dfn[title] {
border-bottom:1px dotted;
cursor:help;
}
table {
border-collapse:collapse;
border-spacing:0;
}
/* change border colour to suit your needs */
hr {
display:block;
height:1px;
border:0;
border-top:1px solid #cccccc;
margin:1em 0;
padding:0;
}
input, select {
vertical-align:middle;
}

9
backend/resources/sass_____1/foundation/function/_em.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,9 @@
// @desc - pxをemに変換します
// @param {Number} $self - 指定したいpx
// @param {Number} $parent - 基準となるpx
// @example - _em(15px, 30px) => 0.5em
@use "sass:math";
@function _em($self, $parent) {
@return math.div($self, $parent) * 1em;
}

10
backend/resources/sass_____1/foundation/function/_rem.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,10 @@
// @desc - pxをremに変換します
// @param {Number} - 指定したいピクセル値
// @param {String} $key [sm] - 指定するブレイクポイントを`$_font-size`のキーで指定
// @example - _rem(15px) => 1rem
@use "sass:math";
@function _rem($px, $key: 'sm') {
$value: map-get($_font-size, $key);
@return math.div($px, $value) * 1rem;
}

ファイルの表示

@ -0,0 +1,6 @@
// @desc - 黒色を加えて明度を暗くします
// @param {String}
// @example - _shade(blue, 50%) => navy
@function _shade($color, $percent) {
@return mix(#000, $color, $percent);
}

ファイルの表示

@ -0,0 +1,6 @@
// @desc - 白色を加えて明度を明るくします
// @param {String}
// @example - _tint(blue, 50%) => #8080ff
@function _tint($color, $percent) {
@return mix(#fff, $color, $percent);
}

バイナリ
backend/resources/sass_____1/foundation/mixin/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

38
backend/resources/sass_____1/foundation/mixin/_box.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,38 @@
@mixin _p-box() {
display: block;
@include _clearfix;
}
@mixin _p-box__image($margin-bottom: null) {
position: relative;
display: block;
margin-bottom: $margin-bottom;
> img {
width: 100%;
max-width: none;
}
}
@mixin _p-box__labels() {
position: absolute;
top: 0;
right: 0;
padding-left: 0;
list-style-type: none;
@include _clearfix;
}
@mixin _p-box__label() {
float: left;
}
@mixin _p-box__content($padding: 0) {
display: block;
padding: $padding;
> :first-child {
margin-top: 0;
}
> :last-child {
margin-bottom: 0;
}
}

ファイルの表示

@ -0,0 +1,30 @@
// @desc - クリアーフィックスのスタイルを挿入します
// @param {Bool, String} - 引数$importantに"important"を渡すと`!important`の指定ができます
// @example scss - Usage
//
// .foo { @include _clearfix; }
// .bar { @include _clearfix(important); }
//
// @example css - CSS output
// .foo:after {
// content: "";
// display: block;
// clear: both;
// }
// .bar:after {
// content: "" !important;
// display: block !important;
// clear: both !important;
// }
@mixin _clearfix($important: false) {
@if ($important == "important") {
$important: unquote("!important");
} @else {
$important: null;
}
&:after {
content: "" $important;
display: block $important;
clear: both $important;
}
}

15
backend/resources/sass_____1/foundation/mixin/_layout.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,15 @@
@mixin _c-layout() {
display: block;
margin: 0;
padding: 0;
font-size: 0;
list-style-type: none;
}
@mixin _c-layout__item() {
display: inline-block;
width: 100%;
font-size: medium;
font-size: 1rem;
vertical-align: top;
}

ファイルの表示

@ -0,0 +1,30 @@
// @desc - マウスオーバーなどのイベントをまとめて指定します
// @author - Harry Roberts
// @param {Bool} $self [false] - Whether or not to include current selector
// @link https://twitter.com/csswizardry/status/478938530342006784 Original tweet from Harry Roberts
// @example scss - Usage
// .foo {
// @include _on-event{
// background-color: red;
// }
// }
// @example css - CSS output
// .foo:hover, .foo:active, .foo:focus {
// background-color: red;
// }
@mixin _on-event($self: false) {
@if $self {
&,
&:hover,
&:active,
&:focus {
@content;
}
} @else {
&:hover,
&:active,
&:focus {
@content;
}
}
}

29
backend/resources/sass_____1/foundation/mixin/_pc.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,29 @@
// @desc - メディアクエリを`min-width`で挿入します
// @param {String} $breakpoint [$_default-breakpoint] - 引数に変数のキーワードを渡します
// @see - $_breakpoint-up
// @example scss - Usage
// .foo {
// color: red;
// @include _mq-up {
// color: blue;
// }
// }
// @example css - CSS output
// .foo {
// color: red;
// }
// @media screen and (min-width: 768px) {
// .foo {
// color: blue;
// }
// }
@mixin pc($breakpoint: $_default-breakpoint) {
@if map-has-key($_breakpoint-up, $breakpoint) {
@media screen and (min-width: 1068px) {
@content;
}
} @else {
@warn "Unfortunately, no value could be retrieved from `#{$breakpoint}`. "
+ "Please make sure it is defined in `$_breakpoint-up` map.";
}
}

ファイルの表示

@ -0,0 +1,29 @@
// @desc - class名とルールセットを指定することでレスポンシブに対応したスタイルを生成します
// @param {String} - 共通のclass名をクウォートとドットをつけて渡しますe.g. `.foo`
// @param {Strind} - 使用するブレイクポイントを定義した変数を渡します
// @see - foundation/variable/_breakpoint.scss
// @example scss - Usage
// @include _responsive(".display-none") {
// display: none;
// }
// @example css - CSS output
// .display-none {
// display: none;
// }
// @media screen and (min-width: 400px) {
// .display-none-sm {
// display: none;
// }
// }
@mixin _responsive($class, $bp: $_breakpoint-up) {
#{$class} {
@content;
}
@each $suffix, $value in $bp {
@media #{$value} {
#{$class}-#{$suffix} {
@content;
}
}
}
}

52
backend/resources/sass_____1/foundation/mixin/_sp.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,52 @@
// @desc - メディアクエリを`max-width`で挿入します
// @param {String} $breakpoint [$_default-breakpoint] - 引数に変数のキーワードを渡します
// @see - $_breakpoint-down
// @example scss - Usage
// .foo {
// color: red;
// @include sp {
// color: blue;
// }
// }
// @example css - CSS output
// .foo {
// color: red;
// }
// @media screen and (max-width: 767px) {
// .foo {
// color: blue;
// }
// }
@mixin sp($breakpoint: $_default-breakpoint) {
@if map-has-key($_breakpoint-down, $breakpoint) {
@media screen and (max-width: 1067px) {
@content;
}
} @else {
@warn "Unfortunately, no value could be retrieved from `#{$breakpoint}`. "
+ "Please make sure it is defined in `$_breakpoint-down` map.";
}
}
@mixin sp02($breakpoint: $_default-breakpoint) {
@if map-has-key($_breakpoint-down, $breakpoint) {
@media screen and (max-width: 430px) {
@content;
}
} @else {
@warn "Unfortunately, no value could be retrieved from `#{$breakpoint}`. "
+ "Please make sure it is defined in `$_breakpoint-down` map.";
}
}
@mixin min($breakpoint: $_default-breakpoint) {
@if map-has-key($_breakpoint-down, $breakpoint) {
@media screen and (max-width: 374px) {
@content;
}
} @else {
@warn "Unfortunately, no value could be retrieved from `#{$breakpoint}`. "
+ "Please make sure it is defined in `$_breakpoint-down` map.";
}
}

ファイルの表示

@ -0,0 +1,17 @@
// @desc - 表示だけをせずにスクリーンリーダーにだけ対応したい場合に使用します
// @param {String} - 引数に"important"を渡すと`!important`の指定ができます
@mixin _sr-only($important: false) {
@if ($important == "important") {
$important: unquote("!important");
} @else {
$important: null;
}
position: absolute $important;
width: 1px $important;
height: 1px $important;
margin: -1px $important;
border: 0 $important;
overflow: hidden $important;
padding: 0 $important;
clip: rect(0, 0, 0, 0) $important;
}

バイナリ
backend/resources/sass_____1/foundation/variable/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

ファイルの表示

@ -0,0 +1,22 @@
// アニメーションの管理
@include mixin.pc{
.fade {
transition: opacity 0.3s ease;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
&:hover{
opacity: 0.7;
cursor: pointer;
}
}
.fade02 {
transition: opacity 0.3s ease;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
&:hover{
opacity: 0.5;
cursor: pointer;
}
}
}

ファイルの表示

@ -0,0 +1,15 @@
// min-width
$_breakpoint-up: (
'sm': 'screen and (min-width: 400px)',
'md': 'screen and (min-width: 768px)',
'lg': 'screen and (min-width: 1000px)',
'xl': 'screen and (min-width: 1200px)',
) !default;
// max-width
$_breakpoint-down: (
'sm': 'screen and (max-width: 399px)',
'md': 'screen and (max-width: 767px)',
'lg': 'screen and (max-width: 999px)',
'xl': 'screen and (max-width: 1199px)',
) !default;

ファイルの表示

@ -0,0 +1,15 @@
// base color
$_color-text: #000 !default;
$_color-text--gray: #ccc !default;
$_color-text--gray02: #6f7372 !default;
$_color-text--gray03: #989898 !default;
$_color-bg: #fff !default;
$_color-bg02: #F7FAFC !default;
// link color
$_color-link--visited: null !default;
// component color
$_color-ui-gray: #F5F7F8 !default;
$_color-ui-bg: #fff !default;
$_color-ui-yellow: #F0DE00 !default;

ファイルの表示

@ -0,0 +1,48 @@
// `transition-timing-function``animation-timing-function`プロパティに指定する
// cubic-bezier() 関数記法で定義した3次ベジェ曲線のタイミング関数です
// 実際に動きは以下のサイトで確認できます
// https://matthewlein.com/ceaser/
//
// デフォルトのタイミング関数には以下のような特徴があります
// easeはゆっくりとinは始まるoutは終わるに置き換えると想像しやすいです
// * linear - 一定の速度で変化する
// * ease - 開始時から急速に加速して中盤から緩やかになる
// * ease-in - 緩やかに始まり次第に加速し突然停止する
// * ease-in-out - 緩やかに始まり加速が緩やかになっていく
// * ease-out - 急速に始まり次第に緩やかになっていく
$_linear: cubic-bezier( 0.250, 0.250, 0.750, 0.750 ) !default;
$_ease: cubic-bezier( 0.250, 0.100, 0.250, 1.000 ) !default;
// ease
$_ease-in: cubic-bezier( 0.420, 0.000, 1.000, 1.000 ) !default;
$_ease-in-quad: cubic-bezier( 0.550, 0.085, 0.680, 0.530 ) !default;
$_ease-in-cubic: cubic-bezier( 0.550, 0.055, 0.675, 0.190 ) !default;
$_ease-in-quart: cubic-bezier( 0.895, 0.030, 0.685, 0.220 ) !default;
$_ease-in-quint: cubic-bezier( 0.755, 0.050, 0.855, 0.060 ) !default;
$_ease-in-sine: cubic-bezier( 0.470, 0.000, 0.745, 0.715 ) !default;
$_ease-in-expo: cubic-bezier( 0.950, 0.050, 0.795, 0.035 ) !default;
$_ease-in-circ: cubic-bezier( 0.600, 0.040, 0.980, 0.335 ) !default;
$_ease-in-back: cubic-bezier( 0.600, -0.280, 0.735, 0.045 ) !default;
// ease-out
$_ease-out: cubic-bezier( 0.000, 0.000, 0.580, 1.000 ) !default;
$_ease-out-quad: cubic-bezier( 0.250, 0.460, 0.450, 0.940 ) !default;
$_ease-out-cubic: cubic-bezier( 0.215, 0.610, 0.355, 1.000 ) !default;
$_ease-out-quart: cubic-bezier( 0.165, 0.840, 0.440, 1.000 ) !default;
$_ease-out-quint: cubic-bezier( 0.230, 1.000, 0.320, 1.000 ) !default;
$_ease-out-sine: cubic-bezier( 0.390, 0.575, 0.565, 1.000 ) !default;
$_ease-out-expo: cubic-bezier( 0.190, 1.000, 0.220, 1.000 ) !default;
$_ease-out-circ: cubic-bezier( 0.075, 0.820, 0.165, 1.000 ) !default;
$_ease-out-back: cubic-bezier( 0.175, 0.885, 0.320, 1.275 ) !default;
// ease-in-out
$_ease-in-out: cubic-bezier( 0.420, 0.000, 0.580, 1.000 ) !default;
$_ease-in-out-quad: cubic-bezier( 0.455, 0.030, 0.515, 0.955 ) !default;
$_ease-in-out-cubic: cubic-bezier( 0.645, 0.045, 0.355, 1.000 ) !default;
$_ease-in-out-quart: cubic-bezier( 0.770, 0.000, 0.175, 1.000 ) !default;
$_ease-in-out-quint: cubic-bezier( 0.860, 0.000, 0.070, 1.000 ) !default;
$_ease-in-out-sine: cubic-bezier( 0.445, 0.050, 0.550, 0.950 ) !default;
$_ease-in-out-expo: cubic-bezier( 1.000, 0.000, 0.000, 1.000 ) !default;
$_ease-in-out-circ: cubic-bezier( 0.785, 0.135, 0.150, 0.860 ) !default;
$_ease-in-out-back: cubic-bezier( 0.680, -0.550, 0.265, 1.550 ) !default;

ファイルの表示

@ -0,0 +1,160 @@
// font-familyを定義していますWindowsとMacで指定する名前が微妙に変わるので
// 半角スペースなどを変更しないようにしてください
// ## ゴシックとsans-serif
// 欧文書体は"Helvetica Neue""Verdana"
// "Helvetica Neue"を指定する場合はWindowsのフォールバックに"Arial""Verdana"
// HelveticaはWindowsではArialとして表示される
// 和文書体は游ゴシックかヒラギノ角ゴ游書体はWindowsのChromeで薄く表示される
// MS書体はアンチエイリアスが効かないために指定せずメイリオを指定する
// 和欧混植Helvetica優先游ゴシックなし
$_font-family-sans-serif-1: "Helvetica Neue", Helvetica, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif !default;
// 和欧混植Helvetica優先游ゴシック優先
$_font-family-sans-serif-2: "Helvetica Neue", Helvetica, "游ゴシック", YuGothic, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif !default;
// 和欧混植Verdana優先游ゴシックなし
$_font-family-sans-serif-3: Verdana, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif !default;
// 和欧混植游ゴシック優先
$_font-family-sans-serif-4: YakuHanJP, "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴシック Pro", Meiryo, "メイリオ", Osaka, " Pゴシック", "MS PGothic", sans-serif !default;
// 和文のみ游ゴシックなし
$_font-family-sans-serif-5: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif !default;
// 和文のみ游ゴシック優先
$_font-family-sans-serif-6: "游ゴシック", YuGothic, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif !default;
// ## 明朝とserif
// 欧文書体は"Times New Roman""Georgia"
// 和文書体は游明朝かヒラギノ明朝游書体はWindowsのChromeで薄く表示される
// 古いWindows用に"HG明朝E"Officeをインストールしていれば使えるフォールバックとしてメイリオ
// " P明朝"はアンチエイリアスが効かないので指定しない
// Androidは明朝体に非対応
// 和欧混植Times New Roman優先游明朝なし
$_font-family-serif-1: "Times New Roman", "Hiragino Mincho ProN", "HG明朝E", Meiryo, serif !default;
// 和欧混植Times New Roman優先游明朝優先
$_font-family-serif-2: "Times New Roman", "游明朝", "YuMincho", "Hiragino Mincho ProN", "HG明朝E", Meiryo, serif !default;
// 和欧混植Georgia優先游明朝なし
$_font-family-serif-3: Georgia, "Hiragino Mincho ProN", "HG明朝E", Meiryo, serif !default;
// 和欧混植Georgia優先游明朝優先
$_font-family-serif-4: Georgia, "游明朝", "YuMincho", "Hiragino Mincho ProN", "HG明朝E", Meiryo, serif !default;
// 和欧混植游明朝優先
$_font-family-serif-5: YuMinch, "Yu Mincho", "游明朝", "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", " P明朝", " 明朝", serif !default;
// 和文のみ游明朝なし
$_font-family-serif-6: "Hiragino Mincho ProN", "HG明朝E", Meiryo, serif !default;
// ## 源柔ゴシック
$_font-family-genju-p: GenJyuuGothic-P, sans-serif;
.font-genju-p-r {
font-family: GenJyuuGothic-P, sans-serif;
font-weight: 400;
-webkit-font-feature-settings: "palt";
font-feature-settings: "palt"
}
.font-genju-p-b {
font-family: GenJyuuGothic-P, sans-serif;
font-weight: 700;
-webkit-font-feature-settings: "palt";
font-feature-settings: "palt"
}
@font-face {
font-family: GenJyuuGothic-P;
font-weight: 400;
src: url(../../assets/fonts/GenJyuuGothic-P/GenJyuuGothic-P-Regular.woff2) format("woff2"), url(../../assets/fonts/GenJyuuGothic-P/GenJyuuGothic-P-Regular.woff) format("woff"), url(../../assets/fonts/GenJyuuGothic-P/GenJyuuGothic-P-Regular.ttf) format("TrueType")
}
@font-face {
font-family: GenJyuuGothic-P;
font-weight: 700;
src: url(../../assets/fonts/GenJyuuGothic-P/GenJyuuGothic-P-Bold.woff2) format("woff2"), url(../../assets/fonts/GenJyuuGothic-P/GenJyuuGothic-P-Bold.woff) format("woff"), url(../../assets/fonts/GenJyuuGothic-P/GenJyuuGothic-P-Bold.ttf) format("TrueType")
}
// ## AdobeBlank
@font-face {
font-family: AdobeBlank;
src: url(data:application/font-woff;base64,d09GRk9UVE8AAATUAAkAAAAACkAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA4AAAAOcAAAEhIl9jq09TLzIAAAHIAAAARQAAAGBRQK3+Y21hcAAAAhAAAAAmAAAALAAMAFNoZWFkAAACOAAAADAAAAA2BZfPvmhoZWEAAAJoAAAAGgAAACQHWf+LaG10eAAAAoQAAAAIAAAACAPoAYhtYXhwAAACjAAAAAYAAAAGAAJQAG5hbWUAAAKUAAACKwAAB2b3USAEcG9zdAAABMAAAAATAAAAIP+4ADJ42mNkYGFmYGRkFHRMyU9KdcpJzMvWLS5ITE4FCZr8kP4h080j183D+EOW8Ycc0w955h8SLN2/eX7V/GJh7eVRkmF4xS/DyCcow/CeR1WG4TuPCgMbEwMjAxsDH0M4QzpDOUM72GDPlNS8ksySSuf8gsqizPSMEgUFIwNDYx0QaaoAVqIQXFlckppbrOCZl5xfVJBflFiSmqKgkVFSUmClr19eXq6XCFKml5yfq6+ph+5cQnwGBpCzGJhBBJjNyMj1Q4FHbYoMI6tQD4/grxqRHx2iDEwsQFlGsAoGBla+Px18AK/lT1cAeNpjYGZ+wTiBgZWBgamLKYKBgcEbQjPGMRgx3GFABYzIHEcXJ38GBwYFBgXmgv8dDAzMBQwVCfqM/5GUKDAwAAArbQs0AAAAeNpjYGBgZGAGYgYGHgYWBgUgzQKEIL7C//8Q8v9DMJ8BAEreBlwAAHjaY2BkYGAA4vc75S7F89t8ZWBmfgEUYbjo4/oZQf/vYH7BXADkMjMwgUQBcKYMvHjaY2BkYGAu+N/BAAXMLxgYGVABEwBNCALqAAAD6AGIAAAAAAAAUAAAAgAAeNrtkz9r20AYxp+zpZhSCEnpBzgolKQk5/8m2FOSJckUYgi0U2VZtlzbkpAVG2+dSukYQj5Bh36A0KFzpw6dOvXLpI/k1ynNYkq3UB8n/+798zx3JwTgufoOhcXvmHPBChtcLTiHAl4K5xl/LWyRI2EbTbwVXmP8i3CB/I2s8DjT/ylMffVMmPqqKkx91RSmvjoRpr56JUx9dSVMffVR+An5JuXbWzwlf6Wash7R91L9EFbQuZ5wDuu5d8J5xq+ELfKNsI0kt+xdg84fCRfIvvAG+b3wJtbznzLeTH3zn4Xpax0J09fyhelrTYXpa10L09da9tLXfiFMX/tEmL72G2H62h8Ow2geD/p+onWlVK7upM+63u+GHU+355PEG0/0ceCGcRTGTuJ19ZafJFGzWJzNZsZJy4wbjovbJms5GDnBcHcSOa535vUvRk58P3x/fe7Fk0EY6LIp1eqt07aAHyZuGEzTldmrtMbO0AuTnhkNOhVTN41qrdRYpfxwT7ZqjUOE/MrmiDFAHz4SaI4KSiijip07rpP20WV1Bx65zZ4Jqz2M+a/57QVwmY2plj6dLNdlZitTTRhvosgxy4ZhxVLNZJ1j5rbJv10OMGJVgCF26RGRXUbPOPu4yHLxyupV+XPOmOsBqwLutswdlFDjeVs45Sn/jPisSrLdBpje5Qz2eEstnsChupfV9BgdUbXDjGGvQYP3WWN145/3/Hc39P8NP/A3/AvEJ2JBAHjaY2BmAIP/WxmMGLAAACzCAeoA) format("woff")
}
// ## Yaku Han JP
@font-face {
font-family: YakuHanJP;
font-weight: 100;
src: url(../../assets/fonts/YakuHanJP/YakuHanJP-Thin.woff2) format("woff2"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Thin.woff) format("woff"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Thin.eot)
}
@font-face {
font-family: YakuHanJP;
font-weight: 200;
src: url(../../assets/fonts/YakuHanJP/YakuHanJP-Light.woff2) format("woff2"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Light.woff) format("woff"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Light.eot)
}
@font-face {
font-family: YakuHanJP;
font-weight: 300;
src: url(../../assets/fonts/YakuHanJP/YakuHanJP-DemiLight.woff2) format("woff2"), url(../../assets/fonts/YakuHanJP/YakuHanJP-DemiLight.woff) format("woff"), url(../../assets/fonts/YakuHanJP/YakuHanJP-DemiLight.eot)
}
@font-face {
font-family: YakuHanJP;
font-weight: 400;
src: url(../../assets/fonts/YakuHanJP/YakuHanJP-Regular.woff2) format("woff2"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Regular.woff) format("woff"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Regular.eot)
}
@font-face {
font-family: YakuHanJP;
font-weight: 500;
src: url(../../assets/fonts/YakuHanJP/YakuHanJP-Medium.woff2) format("woff2"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Medium.woff) format("woff"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Medium.eot)
}
@font-face {
font-family: YakuHanJP;
font-weight: 700;
src: url(../../assets/fonts/YakuHanJP/YakuHanJP-Bold.woff2) format("woff2"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Bold.woff) format("woff"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Bold.eot)
}
@font-face {
font-family: YakuHanJP;
font-weight: 900;
src: url(../../assets/fonts/YakuHanJP/YakuHanJP-Black.woff2) format("woff2"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Black.woff) format("woff"), url(../../assets/fonts/YakuHanJP/YakuHanJP-Black.eot)
}
// ## Macで追加できるフォント
// ヒラギノ丸ゴ "ヒラギノ丸ゴ ProN", "Hiragino Maru Gothic ProN"
// EL Captainで追加されたフォント
// 筑紫丸Aゴシック "TsukuARdGothic-Regular"ふところを絞ったデザインの丸ゴシック体で和風落ち着いた印象
// 筑紫丸Bゴシック "TsukuBRdGothic-Regular"筑紫丸Aゴシックよりも特徴がある
// クレー "Klee"鉛筆やペンのような手書き風で本文組みに適した書体
// ヒラギノ角ゴシック "Hiragino Sans"ヒラギノ角ゴに10種類のウェイトを追加
// 游明朝体+36ポかな "YuMin_36pKn-Medium"毛筆表現のある游明朝体で漢字と英数字は含んでいない
// San Francisco -apple-system
// 主要なフォント
// 游ゴシック Windows8.1以降MacOS10.9以降
// 游明朝 Windows8.1以降MacOS10.9以降
// メイリオ Windows Vista以降
// ヒラギノ角ゴ ProN Mac OS 10.5以降iOS
// ヒラギノ明朝 ProN Mac OS 10.5以降iOS6以降
// Droid Sans Android
// Roboto Android4以降
// WindowsとMacでの共通フォント
// Arial
// Arial Black
// Comic Sans MS
// Courier
// Courier New
// Georgia
// Impact
// Times New Roman
// Trebuchet MS
// Verdana
// ブラウザのデフォルトフォント
// Safari 7 / Mac 10.9 Helvetica / ヒラギノ角ゴシック ProN
// Firefox 25 / Mac 10.9 ヒラギノ角ゴシック ProN
// Chrome 30 / Mac 10.9 ヒラギノ角ゴシック ProN
// IE 11 / Win 8.1 メイリオ
// IE 8 / Win 7 Arial / Pゴシック
// Firefox 25 / Win 8.1 Pゴシック
// Chrome 30 / Win 8.1 Pゴシック
// Androidについて
// * 明朝体には対応していない
// * 4.0以降ではRobotoとモトヤフォントがデフォルトそれ以前はDroid SansDroid Sans Japaneseも含む
// * HelveticaかArialを指定するとブラウザ側でDroid Sansがエイリアスとして表示される

ファイルの表示

@ -0,0 +1,38 @@
// default breakpoint
$_default-breakpoint: 'md';
// default wrapper width
$_max-width: 960px !default;
// default grid columns
$_column: 12 !default;
// base font-size
$_font-size: (
'sm': 15px,
'md': 16px,
) !default;
$_font-size--large: 16px !default;
$_font-size--small: 0.8em !default;
// base font-weight
$_font-weight-light: 300;
$_font-weight-normal: 400;
$_font-weight-regular: 400;
$_font-weight-medium: 500;
$_font-weight-semibold: 600;
$_font-weight-bold: 700;
$_font-weight-extrabold: 800;
$_font-weight-heavy: 900;
// base Rounded corners
$_radius: 3px !default;
// base animation speed
$_duration: 0.3s !default;
// base spacing
$_white-space: 1.7rem !default;
$_white-space--small: ($_white-space * 0.5) !default;
$_white-space--large: ($_white-space * 2) !default;

ファイルの表示

@ -0,0 +1,10 @@
// z-indexが定義されていない要素は`z-index:0;`として描画されます
// 同じz-indexを持つ要素はスタック文脈が同じであればHTMLの記述順に依存します
// なるべく数値はユニーク一意にしてシンプルに管理できるようにします
// @see - 'e-z-index()' (foundation/function/_z-index.scss)
$_z-index: (
'below': -1,
'default': 1,
'fixNav': 2,
'modal': 3,
) !default;

224
backend/resources/sass_____1/index.md ノーマルファイル
ファイルの表示

@ -0,0 +1,224 @@
## TOC(目次)
```scss
/**
* VARIABLE
* global...サイト全体に使用するサイズや数値に関する変数です。
* breakpoint...メディアクエリで使用するブレイクポイントです。
* font-family...font-family指定をまとめています。
* color...グローバルに使用する色指定です。
* z-index...z-indexの並び順を管理します。
* easing...cubic-bezier関数を使用したタイミング関数を定義しています。
*
* FUNCTION
* strip-unit...pxやremなどの単位を取り除きます。
* em...pxをemに変換します。
* rem...pxをremに変換します。
* tint...白色を加えて明度を明るくします。
* shade...黒色を加えて明度を暗くします。
* z-index...z-indexの並び順を管理します。
* tracking...Photoshopのカーニングをemに変換します。
*
* MIXIN
* mq-up...メディアクエリを`min-width`で挿入します。
* mq-down...メディアクエリを`max-width`で挿入します。
* responsive...レスポンシブ対応クラスを生成します。
* clearfix...floatの解除をします。
* on-event...:hover, :active, :focusをまとめて指定します。
* sr-only...非表示にしてスクリーンリーダーにだけ読み上げさせます。
*
* BASE
* normalize...Normalize.cssをインポートしています。
* base...タイプセレクタと属性セレクタのデフォルトスタイルです。
*
* LAYOUT
* header...ヘッダーエリアのコンテナブロックのスタイルです。
* footer...フッターエリアのコンテナブロックのスタイルです。
* main...コンテンツエリアのコンテナブロックのスタイルです。
* side...サイドバーエリアのコンテナブロックのスタイルです。
* section...`<section>`要素を使うようなセクションの余白を管理します。
*
* COMPONENT
* wrapper...最大幅を指定します。
* layout...汎用的なレイアウトオブジェクトです。グリッドレイアウトなどに使用できます。
* media...画像とテキストが横並びになるオブジェクトです。
* list-unstyled...`<ul>`と`<ol>`でデフォルトスタイルをリセットします。
* embed...Youtubeなどをアスペクト比を固定してレスポンシブ対応させる場合に使用します。
* table...tableのレイアウトアルゴリズムの変更、余白の変更をします。
*
* PROJECT
* icon...アイコンフォントです。テンプレートから自動で生成されます。
* icon-extend...アイコンフォントを拡張するModifierです。
* button...ボタンコンポーネントです。
* breadcrumb...パンくずリストコンポーネントです。
* label...インラインのラベルコンポーネントです。
* badge...投稿数のような数値を表示するバッジコンポーネントです。
* card...カードタイプのコンポーネントです。
* split...定義リストをブロックからインラインにするコンポーネントです。
* notification...お知らせエリアのコンポーネントです。
*
* SCOPE
* blog...ブログページのスタイルです。
*
* UTILITY
* text...テキストのスタイルに関する汎用クラスです。
* image...画像のレイアウトに関する汎用クラスです。
* margin...マージンで余白の管理をします。常に下方向にだけ余白をとります。
* display...要素の表示や改行をコントロールする場合に使用します。
* width...おもにグリッドで使用する`width`を指定する汎用クラスです。
* offset...おもにグリッドで使用する`margin-right`を指定する汎用クラスです。
* percent...`width`プロパティを5%刻みで指定する汎用クラスです。
*/
```
## CSS構成
```scss
/**
* このスタイルシートは[FLOCSS](https://github.com/hiloki/flocss)をベースにしています。
* 定義されているレイヤー以外にもThemeやTestなどのレイヤーを追加することもできます。
* 詳しくは[CSSコーディングルール](https://github.com/manabuyasuda/styleguide/blob/master/css-coding-rule.md#flocss)を参照してください。
*/
/* =============================================================================
#Foundation
========================================================================== */
//
// Sassの変数と関数を定義します。
// 変数は用途ごとにモジュール化、関数は機能ごとにモジュール化をします。
// プレフィックス(接頭辞)として`_`をつけます。
//
@import "foundation/variable/_global";
@import "foundation/variable/_breakpoint";
@import "foundation/variable/_font-family";
@import "foundation/variable/_color";
@import "foundation/variable/_z-index";
@import "foundation/variable/_easing";
@import "foundation/function/_strip-unit";
@import "foundation/function/_em";
@import "foundation/function/_rem";
@import "foundation/function/_tint";
@import "foundation/function/_shade";
@import "foundation/function/_z-index";
@import "foundation/function/_tracking";
@import "foundation/mixin/_mq-up";
@import "foundation/mixin/_mq-down";
@import "foundation/mixin/_responsive";
@import "foundation/mixin/_clearfix";
@import "foundation/mixin/_on-event";
@import "foundation/mixin/_sr-only";
/**
* Foundationレイヤーでは`html`や`body`のような広範囲にわたるベーススタイル、
* `h2`や`ul`のような基本的なタイプセレクタのデフォルトスタイルを定義します。
* 装飾的なスタイルは避けて、できる限り低詳細度に保ちます。idセレクタやclassセレクタは使用しません。
*/
@import "foundation/base/_normalize";
@import "foundation/base/_base";
/* =============================================================================
#Layout
========================================================================== */
/**
* Layoutレイヤーはヘッダーやフッターのような、ページを構成するコンテナブロックのスタイルを定義します。
* 目安としてはワイヤーフレームに書かれるような大きな単位のブロックです。
* 汎用性のあるグリッドシステムは次のObject/Componentレイヤーで定義します。
* グローバルナビゲーションやコピーライトのようなコンポーネントは、Object/Projectレイヤーで定義します。
* 基本的にはclass属性を使用しますが、id属性を使用することもできます。
* プレフィックス(接頭辞)として`l-`をつけます。
*/
@import "layout/_header";
@import "layout/_footer";
@import "layout/_main";
@import "layout/_sidebar";
@import "layout/_section";
/* =============================================================================
#Object
========================================================================== */
/**
* Objectレイヤーはプロジェクトにおけるビジュアルパターンです。抽象度や詳細度、
* 拡張性などによって、4つのレイヤーにわけられます。
* それぞれのレイヤーにはプレフィックス(接頭辞)をつけます。
* 1. Component(`c-`)
* 2. Project(`p-`)
* 3. Scope(`s-`)
* 4. Utility(`u-`)
*
* ランディングページのようにページ特有のスタイルを多く含む場合は、
* ページ専用のCSSファイルを作成することもできます。
* ページ専用のスタイルは、そのページにだけ読み込ませることでスコープをつくり、
* プレフィックス(接頭辞)をつけないことで名前の重複を防ぎます。
*/
/* -----------------------------------------------------------------------------
#Component
-------------------------------------------------------------------------- */
/**
* Componentレイヤーは多くのプロジェクトで横断的に再利用のできるような、小さな単位のモジュール(機能)です。
* OOCSSの構造(structure)の機能を担うため、装飾的なスタイルをできるだけ含めないようにします。
* また、`width`や`margin`といったレイアウトに影響を与えるプロパティもできるだけ含めないようにします。
* 例えばgridやmediaといったレイアウトパターンが該当します。
* プレフィックス(接頭辞)として`c-`をつけます。
*/
@import "object/component/_wrapper";
@import "object/component/_layout";
@import "object/component/_media";
@import "object/component/_list-unstyled";
@import "object/component/_embed";
@import "object/component/_table";
/* -----------------------------------------------------------------------------
#Project
-------------------------------------------------------------------------- */
/**
* Projectレイヤーはプロジェクト固有のパターンで、複数のページで使い回せるようなコンポーネントです。
* 具体的なスタイルを持つUI(ユーザーフェイス)で、追加されるコンポーネントのほとんどはこのレイヤーに置かれます。
* もし、このレイヤーで同じパターンが3箇所で使われていたら、別のコンポーネントとしてまとめられないか検討しましょう。
* プレフィックス(接頭辞)として`p-`をつけます。
*/
@import "object/project/_icon";
@import "object/project/_icon-extend";
@import "object/project/_button";
@import "object/project/_breadcrumb";
@import "object/project/_label";
@import "object/project/_badge";
@import "object/project/_card";
@import "object/project/_split";
/* -----------------------------------------------------------------------------
#Scope
-------------------------------------------------------------------------- */
/**
* ComponentレイヤーやProjectレイヤーのようなコンポーネント単位ではなく、
* ページ単位や任意の範囲(スコープ)でのスタイルを定義します。1箇所でしか使わないような特異なスタイルや、
* ページ単位でComponentやProjectレイヤーのスタイルを微調整したい場合に使用してもかまいません。
* 例えばブログページのスタイルとして_blog.scssを作成します。
* このレイヤーでは`.s-blog p`のような要素セレクタとの結合子も使うこともできます。
* もし、このレイヤーで同じパターンが3箇所で使われていたら、
* ProjectレイヤーやUtilityレイヤーでまとめられないか検討しましょう。
* プレフィックス(接頭辞)として`s-`をつけます。
*/
@import "object/scope/_blog";
/* -----------------------------------------------------------------------------
#Utility
-------------------------------------------------------------------------- */
/**
* Utilityレイヤーはいわゆる汎用クラスで、ほとんどの場合は単一のスタイルをもっています。
* コンポーネント間の間隔を調整したり、BEMのModifierが増えすぎるのを防ぎます。
* `.mb10`のような具体的な名前より`.mb-small`のような相対的な名前にしたり、
* pxよりもemや%で指定することを推奨します。
* 確実にスタイルを適応させるために`!important`を使用します。
* プレフィックス(接頭辞)として`u-`をつけます。
*/
@import "object/utility/_text";
@import "object/utility/_image";
@import "object/utility/_margin";
@import "object/utility/_display";
@import "object/utility/_width";
@import "object/utility/_offset";
@import "object/utility/_percent";
```

91
backend/resources/sass_____1/layout/_content.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,91 @@
/* #Content
-------------------------------------------------------------------------- */
/*doc
---
title: content
name: content
categories: [layout]
---
`<article>`タグが使われるようなメインコンテンツのスタイルです
ナビゲーションやバナーなどのレイアウトを含むことはできますが
コンポーネント自体はobject/projectレイヤーで定義します
```block
<body>
<article class="l-content s-blog">
<header class="l-content__lead"></header>
</article>
</body>
```
*/
.l-content {
width: 100%;
margin: 30px auto 0;
padding: 0 20px;
@include pc{
margin: 25px 0 0 240px;
padding: 0 32px;
}
@include sp{
padding-bottom: 130px;
max-width: 700px;
box-sizing: border-box;
}
@include sp02{
padding-bottom: 110px;
}
&-wrap{
margin: 0 auto;
box-sizing: border-box;
@include pc{
max-width: 1064px;
-webkit-box-shadow: 0 1px 4px #ddd;
box-shadow: 0 1px 4px #ddd;
margin-bottom: 40px;
border-radius: 8px;
background: #fff;
}
}
&__ttl{
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
margin: 0 auto 35px;
@include pc{
max-width: 1064px;
justify-content: space-between;
margin: 0 auto 25px;
}
@include sp02{
margin: 0 auto 30px
}
&__left{
display: flex;
flex-wrap: wrap;
align-items: center;
}
h2{
font-size: 2.4rem;
font-weight: bold;
@include pc{
margin-right: 30px;
font-size: 3rem;
}
@include sp{
letter-spacing: 0.04em;
}
@include min{
font-size: 2rem;
}
}
}
&-w560{
margin: 0 auto;
width: 100%;
@include pc{
max-width: 560px;
}
}
}

32
backend/resources/sass_____1/layout/_footer.scss vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,32 @@
/* #Footer
-------------------------------------------------------------------------- */
/*doc
---
title: footer
name: footer
categories: [layout]
---
`<body>`タグ直下にある`<footer>`タグのスタイルです
コピーライトやナビゲーションのレイアウトを含むことはできますが
コンポーネント自体はobject/projectレイヤーで定義します
```block
<body>
<footer class="l-footer">
<div class="l-footer__copyright">
<small class="p-copyright"></small>
</div>
<nav class="l-footer__sub-nav">
<ul class="p-foot-nav">
<li></li>
<li></li>
<ul>
</nav>
</footer>
</body>
```
*/
.l-footer {
}

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