Compare commits
167
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbe38faf59 | ||
|
|
0015e105f9 | ||
|
|
3dc8cce37a | ||
|
|
090eeccf8c | ||
|
|
17a7e173fe | ||
|
|
8d52c43e68 | ||
|
|
8c09ab3c6e | ||
|
|
7d4a1897f7 | ||
|
|
72ab577431 | ||
|
|
535617594f | ||
|
|
1230cac914 | ||
|
|
a3d5c16484 | ||
|
|
29ea329ed5 | ||
|
|
d719af498c | ||
|
|
b118391dc6 | ||
|
|
17d2f3544c | ||
|
|
25ba693bbd | ||
|
|
e5406b6549 | ||
|
|
5fa8ad286f | ||
|
|
d3061eddaf | ||
|
|
883e028cae | ||
|
|
2f4b93d11c | ||
|
|
57d7e8feee | ||
|
|
dd3b0b7731 | ||
|
|
c86301c9b2 | ||
|
|
3079df9072 | ||
|
|
1c04605dc7 | ||
|
|
2b8a4ed46f | ||
|
|
622f2c8758 | ||
|
|
4e6637aba9 | ||
|
|
c6784759cd | ||
|
|
55f27433f9 | ||
|
|
2dd02f0632 | ||
|
|
5d4bc9e93b | ||
|
|
ccb69a43d2 | ||
|
|
36755ccfb0 | ||
|
|
27dff192f2 | ||
|
|
e9dad6bfe5 | ||
|
|
69d161c19b | ||
|
|
103dcc919e | ||
|
|
3eea2ea4a2 | ||
|
|
d0a948e93f | ||
|
|
2a3c71f939 | ||
|
|
8caa778ee0 | ||
|
|
5521b70e46 | ||
|
|
c8d784ae2b | ||
|
|
910170b594 | ||
|
|
4dee3442b0 | ||
|
|
b38f2a8b2f | ||
|
|
1e8afcbc44 | ||
|
|
9e2b51de60 | ||
|
|
eb0f467aad | ||
|
|
da4b86f4d3 | ||
|
|
b5ef38bc0d | ||
|
|
c5b7e9dcde | ||
|
|
b611d41e8a | ||
|
|
c3ba43b0fa | ||
|
|
dc0e006e0f | ||
|
|
0b66858969 | ||
|
|
16c8fba623 | ||
|
|
852fccd95c | ||
|
|
316d07db61 | ||
|
|
bf99f618f6 | ||
|
|
534f0cb7cb | ||
|
|
974f6820d4 | ||
|
|
6ccf910e29 | ||
|
|
aaf1ced21c | ||
|
|
d05a3e2dc6 | ||
|
|
8be8b44584 | ||
|
|
4a028c04c9 | ||
|
|
1f1d7ab75d | ||
|
|
e0e5d9e290 | ||
|
|
181eb67501 | ||
|
|
8af976c528 | ||
|
|
beba1f16b4 | ||
|
|
76d0cbdb8d | ||
|
|
6ff0bb31d3 | ||
|
|
e78825b99f | ||
|
|
33a9d6fec7 | ||
|
|
b01145e6bd | ||
|
|
06024c82c1 | ||
|
|
ce4a4838f1 | ||
|
|
f80cfbeba7 | ||
|
|
61e5966083 | ||
|
|
f49a606693 | ||
|
|
2b866b32bb | ||
|
|
97896b5170 | ||
|
|
3647ff15e1 | ||
|
|
267f753452 | ||
|
|
c33e463e09 | ||
|
|
40cfc3c9f5 | ||
|
|
632ba5257e | ||
|
|
7127effdaf | ||
|
|
ca3f7e964e | ||
|
|
904e779b59 | ||
|
|
63054b4a3a | ||
|
|
871f3c5ba8 | ||
|
|
9c706bb9b1 | ||
|
|
06c57ca837 | ||
|
|
39a3ec055b | ||
|
|
401cf8e1a7 | ||
|
|
f50d624d22 | ||
|
|
4aeee1acb5 | ||
|
|
b6a9cfed19 | ||
|
|
a67dcf763b | ||
|
|
0f58c2dcae | ||
|
|
9cb1418b0d | ||
|
|
f62e6ca651 | ||
|
|
0c6ddd4904 | ||
|
|
14d4dbfe97 | ||
|
|
50d0c2cd4d | ||
|
|
4fe45169c3 | ||
|
|
78d93a16eb | ||
|
|
b94bf528be | ||
|
|
11ad57bce4 | ||
|
|
495a55f8c1 | ||
|
|
c611360c04 | ||
|
|
ada418374b | ||
|
|
3bf7f2a195 | ||
|
|
2d22cab6e7 | ||
|
|
96dcbe1798 | ||
|
|
ac6dc5b426 | ||
|
|
b4f22ffeea | ||
|
|
ca3ed630ed | ||
|
|
e2d3868a9e | ||
|
|
47314620be | ||
|
|
f26f3f2665 | ||
|
|
938b37e920 | ||
|
|
2c5a989306 | ||
|
|
88a6dd9316 | ||
|
|
77742c1d6f | ||
|
|
ba16c6475a | ||
|
|
1735098b3a | ||
|
|
2fdaaa47ab | ||
|
|
bd4e4aed27 | ||
|
|
94a8240ad4 | ||
|
|
be03af61ea | ||
|
|
4da34c98f3 | ||
|
|
12253f0621 | ||
|
|
369954f5d2 | ||
|
|
4eee702dce | ||
|
|
e90daa2e61 | ||
|
|
cc8570d02f | ||
|
|
98e5ea965c | ||
|
|
7a98ab1c6d | ||
|
|
70973a63fb | ||
|
|
ad82f73c1d | ||
|
|
e08016c103 | ||
|
|
a65e99b199 | ||
|
|
4853150f07 | ||
|
|
a341e66c13 | ||
|
|
874779d230 | ||
|
|
779e8a8b0f | ||
|
|
8f35e88ce4 | ||
|
|
71e874cfb4 | ||
|
|
622b8942b5 | ||
|
|
7aeb7d094c | ||
|
|
4ee80f8b7e | ||
|
|
4859fa6877 | ||
|
|
a1d831cdf2 | ||
|
|
a3ee639d77 | ||
|
|
cd274aea81 | ||
|
|
aaa548eb21 | ||
|
|
99f05a055d | ||
|
|
e614d50f9c | ||
|
|
20526c829c | ||
|
|
c9ed33f108 |
@@ -1,16 +0,0 @@
|
|||||||
FROM gitea.tryton.geeraert.eu/pi-ux-ce/python:3
|
|
||||||
|
|
||||||
ENV PYTHONUNBUFFERED 1
|
|
||||||
|
|
||||||
WORKDIR /code/
|
|
||||||
|
|
||||||
# Copy only the requirements file first (Changes infrequently)
|
|
||||||
COPY requirements.txt ./
|
|
||||||
|
|
||||||
|
|
||||||
RUN --mount=type=cache,target=/root/.cache/pip pip install --upgrade pip
|
|
||||||
RUN --mount=type=cache,target=/root/.cache/pip pip list --outdated
|
|
||||||
RUN --mount=type=cache,target=/root/.cache/pip pip install --upgrade wheel
|
|
||||||
RUN --mount=type=cache,target=/root/.cache/pip pip install --upgrade setuptools
|
|
||||||
RUN --mount=type=cache,target=/root/.cache/pip pip install -r requirements.txt
|
|
||||||
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
django
|
|
||||||
psycopg2
|
|
||||||
requests
|
|
||||||
proxmoxer
|
|
||||||
docker
|
|
||||||
kubernetes
|
|
||||||
ruamel.yaml
|
|
||||||
pyyaml
|
|
||||||
django-bootstrap-v5
|
|
||||||
jinja2
|
|
||||||
watchdog
|
|
||||||
celery
|
|
||||||
redis
|
|
||||||
lxml
|
|
||||||
requests
|
|
||||||
@@ -2,96 +2,45 @@ name: Gitea Actions Demo
|
|||||||
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
#paths-ignore:
|
branches:
|
||||||
# - 'requirements.txt'
|
- main
|
||||||
|
paths-ignore:
|
||||||
|
- 'django_testing/dockerfile'
|
||||||
issue_comment:
|
issue_comment:
|
||||||
types: [created]
|
types: [created]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Job to check for file changes and set an output
|
|
||||||
changes:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
requirements_changed: ${{ steps.filter.outputs.requirements }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: dorny/paths-filter@v3
|
|
||||||
id: filter
|
|
||||||
with:
|
|
||||||
filters: |
|
|
||||||
requirements:
|
|
||||||
- 'requirements.txt'
|
|
||||||
|
|
||||||
Build-dockerfile:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: changes
|
|
||||||
if: ${{ needs.changes.outputs.requirements_changed == 'true' }}
|
|
||||||
steps:
|
|
||||||
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
|
||||||
- name: Check out repository code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
|
|
||||||
- name: List files in the repository
|
|
||||||
run: |
|
|
||||||
ls ${{ gitea.workspace }}
|
|
||||||
|
|
||||||
- name: Compute next version
|
|
||||||
id: versioning
|
|
||||||
run: |
|
|
||||||
latest="${{ vars.PYTHON_VERSION }}"
|
|
||||||
next_version=$(echo "$latest" | awk -F. -v OFS=. '{$NF += 1 ; print}')
|
|
||||||
echo "next_version=$next_version" >> $GITHUB_ENV
|
|
||||||
echo "Variables used :"
|
|
||||||
echo "------------------------------------------------"
|
|
||||||
echo "Next version: $next_version"
|
|
||||||
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: /root/.cache/pip
|
|
||||||
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pip-
|
|
||||||
|
|
||||||
|
|
||||||
- name: inject cache into docker
|
|
||||||
uses: reproducible-containers/buildkit-cache-dance@v3.1.0
|
|
||||||
with:
|
|
||||||
cache-source: /root/.cache/pip
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Login to gitea
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: gitea.tryton.geeraert.eu
|
|
||||||
username: ${{ secrets.USERNAME_GITEA }}
|
|
||||||
password: ${{ secrets.PASSWORD_GITEA }}
|
|
||||||
|
|
||||||
- name: Build and push
|
|
||||||
uses: docker/build-push-action@v6
|
|
||||||
with:
|
|
||||||
context: "{{defaultContext}}:.gitea/python_build"
|
|
||||||
push: true
|
|
||||||
tags: |
|
|
||||||
gitea.tryton.geeraert.eu/pi-ux-ce/modified-python:latest
|
|
||||||
gitea.tryton.geeraert.eu/pi-ux-ce/modified-python:${{ env.next_version }}
|
|
||||||
cache-from: type=registry,ref=gitea.tryton.geeraert.eu/pi-ux-ce/modified-python:buildcache
|
|
||||||
cache-to: type=registry,ref=gitea.tryton.geeraert.eu/pi-ux-ce/modified-python:buildcache,mode=max
|
|
||||||
|
|
||||||
- name: update version in the variable
|
|
||||||
run: |
|
|
||||||
curl -X PUT -H "Content-Type: application/json" \
|
|
||||||
--user ${{ secrets.USERNAME_GITEA }}:${{ secrets.PASSWORD_GITEA }} \
|
|
||||||
https://gitea.tryton.geeraert.eu/api/v1/repos/pi-ux-ce/${{ github.event.repository.name }}/actions/variables/PYTHON_VERSION \
|
|
||||||
-d "{\"Value\":\"$next_version\"}"
|
|
||||||
Explore-Gitea-Actions:
|
Explore-Gitea-Actions:
|
||||||
runs-on: ubuntu-latest
|
env:
|
||||||
|
RUNNER_TOOL_CACHE: /toolcache
|
||||||
|
DEBUG: True
|
||||||
|
ALLOWED_HOSTS: "django.tryton.geeraert.eu"
|
||||||
|
container:
|
||||||
|
image: gitea.tryton.geeraert.eu/pi-ux-ce/custom-runner-debian-slim:1.0.6
|
||||||
|
volumes:
|
||||||
|
- act-toolcache:/opt/hostedtoolcache # this is where Runner store their cache default
|
||||||
|
runs-on: host-runner
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
||||||
|
|
||||||
|
- name: restore git folder if exist
|
||||||
|
run: if [ -d "/opt/hostedtoolcache/${{ github.event.repository.name }}/" ]; then cp -r /opt/hostedtoolcache/${{ github.event.repository.name }}/ ${{ gitea.workspace }}; fi
|
||||||
|
|
||||||
|
- name: Check Docker Version
|
||||||
|
run: whereis docker
|
||||||
|
|
||||||
- name: Check out repository code
|
- name: Check out repository code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
clean: false
|
||||||
|
fetch-depth: 1
|
||||||
|
ref: 'main'
|
||||||
|
|
||||||
|
# - name: Manually check out repository code
|
||||||
|
# run: cd ${{ gitea.workspace }} ; git pull origin main
|
||||||
|
|
||||||
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
|
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
|
||||||
|
|
||||||
- name: List files in the repository
|
- name: List files in the repository
|
||||||
run: |
|
run: |
|
||||||
ls ${{ gitea.workspace }}
|
ls ${{ gitea.workspace }}
|
||||||
@@ -106,18 +55,19 @@ jobs:
|
|||||||
echo "------------------------------------------------"
|
echo "------------------------------------------------"
|
||||||
echo "Next version: $next_version"
|
echo "Next version: $next_version"
|
||||||
|
|
||||||
- uses: actions/cache@v3
|
- name: Cache Docker layers
|
||||||
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: /root/.cache/pip
|
path: /opt/hostedtoolcache/.buildx-cache
|
||||||
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
|
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-pip-
|
${{ runner.os }}-buildx-
|
||||||
|
|
||||||
|
|
||||||
- name: inject cache into docker
|
- name: inject cache into docker
|
||||||
uses: reproducible-containers/buildkit-cache-dance@v3.1.0
|
uses: reproducible-containers/buildkit-cache-dance@v3.1.0
|
||||||
with:
|
with:
|
||||||
cache-source: /root/.cache/pip
|
cache-source: /opt/hostedtoolcache/pip
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
@@ -133,19 +83,27 @@ jobs:
|
|||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
push: true
|
push: true
|
||||||
|
build-args: |
|
||||||
|
ALLOWED_HOSTS='django.tryton.geeraert.eu'
|
||||||
|
DEBUG='True'
|
||||||
tags: |
|
tags: |
|
||||||
gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest
|
gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest
|
||||||
gitea.tryton.geeraert.eu/pi-ux-ce/django-python:${{ env.next_version }}
|
gitea.tryton.geeraert.eu/pi-ux-ce/django-python:${{ env.next_version }}
|
||||||
cache-from: type=registry,ref=gitea.tryton.geeraert.eu/pi-ux-ce/django-python:buildcache
|
cache-from: type=local,src=/opt/hostedtoolcache/.buildx-cache
|
||||||
cache-to: type=registry,ref=gitea.tryton.geeraert.eu/pi-ux-ce/django-python:buildcache,mode=max
|
cache-to: type=local,dest=/opt/hostedtoolcache/.buildx-cache-new,mode=max
|
||||||
|
|
||||||
|
- name: Move cache
|
||||||
|
run: |
|
||||||
|
rm -rf /opt/hostedtoolcache/.buildx-cache
|
||||||
|
mv /opt/hostedtoolcache/.buildx-cache-new /opt/hostedtoolcache/.buildx-cache
|
||||||
|
|
||||||
- name: Rollout Django to force pulling the new image
|
- name: Rollout Django to force pulling the new image
|
||||||
uses: actions-hub/kubectl@master
|
uses: actions-hub/kubectl@master
|
||||||
env:
|
env:
|
||||||
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
|
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
|
||||||
with:
|
with:
|
||||||
args: rollout restart deployment django -n django
|
args: rollout restart deployment django -n django
|
||||||
|
|
||||||
- name: Rollout Celery worker to force pulling the new image
|
- name: Rollout Celery worker to force pulling the new image
|
||||||
uses: actions-hub/kubectl@master
|
uses: actions-hub/kubectl@master
|
||||||
env:
|
env:
|
||||||
@@ -159,4 +117,7 @@ jobs:
|
|||||||
curl -X PUT -H "Content-Type: application/json" \
|
curl -X PUT -H "Content-Type: application/json" \
|
||||||
--user ${{ secrets.USERNAME_GITEA }}:${{ secrets.PASSWORD_GITEA }} \
|
--user ${{ secrets.USERNAME_GITEA }}:${{ secrets.PASSWORD_GITEA }} \
|
||||||
https://gitea.tryton.geeraert.eu/api/v1/repos/pi-ux-ce/${{ github.event.repository.name }}/actions/variables/VERSION \
|
https://gitea.tryton.geeraert.eu/api/v1/repos/pi-ux-ce/${{ github.event.repository.name }}/actions/variables/VERSION \
|
||||||
-d "{\"Value\":\"$next_version\"}"
|
-d "{\"Value\":\"$next_version\"}"
|
||||||
|
|
||||||
|
- name: backup git for future use
|
||||||
|
run: cp -r ${{ gitea.workspace }} /opt/hostedtoolcache/${{ github.event.repository.name }}/
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
name: Gitea Actions Demo
|
||||||
|
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "testing"
|
||||||
|
paths:
|
||||||
|
- 'django_testing/dockerfile'
|
||||||
|
tags-ignore:
|
||||||
|
- '*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Explore-Gitea-Actions:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
|
||||||
|
- name: List files in the repository
|
||||||
|
run: |
|
||||||
|
ls ${{ gitea.workspace }}
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Compute next version
|
||||||
|
id: versioning
|
||||||
|
run: |
|
||||||
|
latest="${{ vars.VERSION_TESTING }}"
|
||||||
|
next_version=$(echo "$latest" | awk -F. -v OFS=. '{$NF += 1 ; print}')
|
||||||
|
echo "next_version=$next_version" >> $GITHUB_ENV
|
||||||
|
echo "Variables used :"
|
||||||
|
echo "------------------------------------------------"
|
||||||
|
echo "Next version: $next_version"
|
||||||
|
|
||||||
|
|
||||||
|
- name: Login to gitea
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: gitea.tryton.geeraert.eu
|
||||||
|
username: ${{ secrets.USERNAME_GITEA }}
|
||||||
|
password: ${{ secrets.PASSWORD_GITEA }}
|
||||||
|
|
||||||
|
- name: Build and push
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: django_testing/
|
||||||
|
push: true
|
||||||
|
build-args: |
|
||||||
|
ALLOWED_HOSTS='django-testing.tryton.geeraert.eu'
|
||||||
|
DEBUG='True'
|
||||||
|
tags: |
|
||||||
|
gitea.tryton.geeraert.eu/pi-ux-ce/django-testing:latest
|
||||||
|
gitea.tryton.geeraert.eu/pi-ux-ce/django-testing:${{ env.next_version }}
|
||||||
|
cache-from: type=registry,ref=gitea.tryton.geeraert.eu/pi-ux-ce/django-testing:buildcache
|
||||||
|
cache-to: type=registry,ref=gitea.tryton.geeraert.eu/pi-ux-ce/django-testing:buildcache,mode=max
|
||||||
|
|
||||||
|
- name: update version in the variable
|
||||||
|
run: |
|
||||||
|
curl -X PUT -H "Content-Type: application/json" \
|
||||||
|
--user ${{ secrets.USERNAME_GITEA }}:${{ secrets.PASSWORD_GITEA }} \
|
||||||
|
https://gitea.tryton.geeraert.eu/api/v1/repos/pi-ux-ce/${{ github.event.repository.name }}/actions/variables/VERSION_TESTING \
|
||||||
|
-d "{\"Value\":\"$next_version\"}"
|
||||||
|
|
||||||
|
- name: Rollout Django to force pulling the new image
|
||||||
|
uses: actions-hub/kubectl@master
|
||||||
|
env:
|
||||||
|
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
|
||||||
|
with:
|
||||||
|
args: rollout restart deployment django-testing -n django-testing
|
||||||
|
|
||||||
|
- run: echo "🍏 This job's status is ${{ job.status }}."
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
name: Gitea Actions Demo
|
||||||
|
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "testing"
|
||||||
|
tags-ignore:
|
||||||
|
- '*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Explore-Gitea-Actions:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
||||||
|
|
||||||
|
- name: Rollout Django to force pulling the new image
|
||||||
|
uses: actions-hub/kubectl@master
|
||||||
|
env:
|
||||||
|
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
|
||||||
|
with:
|
||||||
|
args: rollout restart deployment django-testing -n django-testing
|
||||||
|
|
||||||
|
- run: echo "🍏 This job's status is ${{ job.status }}."
|
||||||
+224
-3
@@ -1,6 +1,227 @@
|
|||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[codz]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
share/python-wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.nox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
*.py.cover
|
||||||
|
*.lcov
|
||||||
|
.hypothesis/
|
||||||
|
.pytest_cache/
|
||||||
|
cover/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
db.sqlite3
|
||||||
|
db.sqlite3-journal
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
.pybuilder/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# IPython
|
||||||
|
profile_default/
|
||||||
|
ipython_config.py
|
||||||
|
|
||||||
|
# pyenv
|
||||||
|
# For a library or package, you might want to ignore these files since the code is
|
||||||
|
# intended to run in multiple environments; otherwise, check them in:
|
||||||
|
# .python-version
|
||||||
|
|
||||||
|
# pipenv
|
||||||
|
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||||
|
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||||
|
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||||
|
# install all needed dependencies.
|
||||||
|
# Pipfile.lock
|
||||||
|
|
||||||
|
# UV
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
||||||
|
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||||
|
# commonly ignored for libraries.
|
||||||
|
# uv.lock
|
||||||
|
|
||||||
|
# poetry
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||||
|
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||||
|
# commonly ignored for libraries.
|
||||||
|
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||||
|
# poetry.lock
|
||||||
|
# poetry.toml
|
||||||
|
|
||||||
|
# pdm
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||||
|
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
|
||||||
|
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
|
||||||
|
# pdm.lock
|
||||||
|
# pdm.toml
|
||||||
|
.pdm-python
|
||||||
|
.pdm-build/
|
||||||
|
|
||||||
|
# pixi
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
|
||||||
|
# pixi.lock
|
||||||
|
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
|
||||||
|
# in the .venv directory. It is recommended not to include this directory in version control.
|
||||||
|
.pixi/*
|
||||||
|
!.pixi/config.toml
|
||||||
|
|
||||||
|
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||||
|
__pypackages__/
|
||||||
|
|
||||||
|
# Celery stuff
|
||||||
|
celerybeat-schedule*
|
||||||
|
celerybeat.pid
|
||||||
|
|
||||||
|
# Redis
|
||||||
|
*.rdb
|
||||||
|
*.aof
|
||||||
|
*.pid
|
||||||
|
|
||||||
|
# RabbitMQ
|
||||||
|
mnesia/
|
||||||
|
rabbitmq/
|
||||||
|
rabbitmq-data/
|
||||||
|
|
||||||
|
# ActiveMQ
|
||||||
|
activemq-data/
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.envrc
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
.dmypy.json
|
||||||
|
dmypy.json
|
||||||
|
|
||||||
|
# Pyre type checker
|
||||||
|
.pyre/
|
||||||
|
|
||||||
|
# pytype static type analyzer
|
||||||
|
.pytype/
|
||||||
|
|
||||||
|
# Cython debug symbols
|
||||||
|
cython_debug/
|
||||||
|
|
||||||
|
# PyCharm
|
||||||
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||||
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
|
# .idea/
|
||||||
|
|
||||||
|
# Abstra
|
||||||
|
# Abstra is an AI-powered process automation framework.
|
||||||
|
# Ignore directories containing user credentials, local state, and settings.
|
||||||
|
# Learn more at https://abstra.io/docs
|
||||||
|
.abstra/
|
||||||
|
|
||||||
|
# Visual Studio Code
|
||||||
|
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
||||||
|
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
||||||
|
# you could uncomment the following to ignore the entire vscode folder
|
||||||
|
# .vscode/
|
||||||
|
# Temporary file for partial code execution
|
||||||
|
tempCodeRunnerFile.py
|
||||||
|
|
||||||
|
# Ruff stuff:
|
||||||
|
.ruff_cache/
|
||||||
|
|
||||||
|
# PyPI configuration file
|
||||||
|
.pypirc
|
||||||
|
|
||||||
|
# Marimo
|
||||||
|
marimo/_static/
|
||||||
|
marimo/_lsp/
|
||||||
|
__marimo__/
|
||||||
|
|
||||||
|
# Streamlit
|
||||||
|
.streamlit/secrets.toml
|
||||||
|
|
||||||
*/__pycache__/*
|
*/__pycache__/*
|
||||||
*/.idea
|
*/.idea/*
|
||||||
venv/*
|
*/venv/*
|
||||||
*__pycache__*
|
*/.env/*
|
||||||
Webcal-python/*
|
Webcal-python/*
|
||||||
.idea/*
|
.idea/*
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: django-python
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: django-webserver
|
|
||||||
namespace: django-python
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: django-python
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: django-python
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: django-python
|
|
||||||
image: gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 8000
|
|
||||||
name: webserver-port
|
|
||||||
volumeMounts:
|
|
||||||
## - name: django-python-code
|
|
||||||
# mountPath: /code
|
|
||||||
- name: servarr-data
|
|
||||||
mountPath: /data
|
|
||||||
readOnly: true
|
|
||||||
- name: secret-kubeconfig
|
|
||||||
mountPath: /kubeconfig
|
|
||||||
|
|
||||||
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 200Mi
|
|
||||||
volumes:
|
|
||||||
- name: django-python-code
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: django-python-code
|
|
||||||
- name: servarr-data
|
|
||||||
hostPath:
|
|
||||||
path: /data
|
|
||||||
- name: secret-kubeconfig
|
|
||||||
secret:
|
|
||||||
defaultMode: 420
|
|
||||||
secretName: kubeconfig
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: webserver
|
|
||||||
namespace: django-python
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 8000
|
|
||||||
protocol: TCP
|
|
||||||
selector:
|
|
||||||
app: django-python
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.http import HttpResponseRedirect
|
||||||
|
from django.shortcuts import render
|
||||||
|
import os
|
||||||
|
import psycopg2
|
||||||
|
from apps.cloudmanager.db_interaction import DB_generation,Check_server_supposed_XXX,Give_current_weekday,Give_current_hour
|
||||||
|
|
||||||
|
|
||||||
|
class CloudmanagerConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'apps.cloudmanager'
|
||||||
|
label = 'cloudmanager'
|
||||||
|
|
||||||
|
def coucou(request):
|
||||||
|
return HttpResponse('<h1>Hello cmm!</h1>')
|
||||||
|
|
||||||
|
def hello(request):
|
||||||
|
list_schedule = ['schedule1','schedule2']
|
||||||
|
list_servers_up = [['wiki', 'wikijs', 2], ['book', 'bookstack-db', 1]]
|
||||||
|
return render(request, 'cloudmanager/index.html', {'list_schedule':list_schedule,'list_servers_up':list_servers_up})
|
||||||
|
|
||||||
|
def redirect(request):
|
||||||
|
db_host = os.environ.get('DB_HOST')
|
||||||
|
db_port = os.environ.get('DB_PORT')
|
||||||
|
db_user = os.environ.get('DB_USERNAME')
|
||||||
|
db_password = os.environ.get('DB_PASSWORD')
|
||||||
|
db_name = os.environ.get('CUSTOM_DB_DATABASE',os.environ.get('DB_DATABASE'))
|
||||||
|
|
||||||
|
generated_db = DB_generation(db_host, db_port, db_user, db_password,db_name)
|
||||||
|
##operation:
|
||||||
|
## Server(s) supposed to be UP
|
||||||
|
|
||||||
|
list_servers_up = Check_server_supposed_XXX(generated_db, "up", Give_current_hour(),Give_current_weekday())
|
||||||
|
print(list_servers_up)
|
||||||
|
return render(request, 'cloudmanager/cmm_blank_page.html', {'list_servers_up':list_servers_up})
|
||||||
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
class sql:
|
||||||
|
url = 'localhost'
|
||||||
|
port = 5432
|
||||||
|
user = 'postgres'
|
||||||
|
password = 'example'
|
||||||
|
database = 'cloudmanager'
|
||||||
@@ -0,0 +1,167 @@
|
|||||||
|
import psycopg2
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.views.decorators.http import require_POST
|
||||||
|
from apps.kubernetes_connection import apps as kubernetes_connection
|
||||||
|
import datetime
|
||||||
|
from apps.cloudmanager import credentials
|
||||||
|
import os
|
||||||
|
|
||||||
|
def hello(request):
|
||||||
|
kubernetes_connection.echoHello();
|
||||||
|
return HttpResponse('<h1>Hello cmm !</h1>')
|
||||||
|
|
||||||
|
def DB_generation(host_in,port_in,user_in,password_in,db_in):
|
||||||
|
db = psycopg2.connect(host=host_in, port=port_in, user=user_in, password=password_in,database=db_in)
|
||||||
|
return db
|
||||||
|
|
||||||
|
@require_POST
|
||||||
|
def change_schedule(request):
|
||||||
|
# HTMX sends these via standard POST data
|
||||||
|
schedule_id = request.POST.get('schedule_id')
|
||||||
|
server_name = request.POST.get('server_name')
|
||||||
|
|
||||||
|
if not schedule_id or not server_name:
|
||||||
|
return HttpResponse("<span style='color: red;'>Missing parameters.</span>", status=400)
|
||||||
|
|
||||||
|
try:
|
||||||
|
# --- Your Core Logic Here ---
|
||||||
|
# e.g., Server.objects.filter(name=server_name).update(schedule_id=schedule_id)
|
||||||
|
print(f"Updating {server_name} to schedule profile {schedule_id}")
|
||||||
|
|
||||||
|
# Return a success message that will instantly inject into the server's status div
|
||||||
|
return HttpResponse("<span style='color: green;'>✓ Updated successfully!</span>")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
return HttpResponse(f"<span style='color: red;'>Error: {str(e)}</span>", status=500)
|
||||||
|
|
||||||
|
def Launch_sql_query(sql,db):
|
||||||
|
# prepare a cursor object using cursor() method
|
||||||
|
cursor = db.cursor()
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Execute the SQL command
|
||||||
|
cursor.execute(sql)
|
||||||
|
# Fetch all the rows in a list of lists.
|
||||||
|
results = cursor.fetchall()
|
||||||
|
result_machine = []
|
||||||
|
#result_machine_type = []
|
||||||
|
for row in results:
|
||||||
|
result_machine_type = []
|
||||||
|
namespace = row[0]
|
||||||
|
name = row[1]
|
||||||
|
replicas = row[2]
|
||||||
|
|
||||||
|
result_machine_type.append(namespace)
|
||||||
|
result_machine_type.append(name)
|
||||||
|
result_machine_type.append(replicas)
|
||||||
|
result_machine.append(result_machine_type)
|
||||||
|
return result_machine
|
||||||
|
|
||||||
|
except:
|
||||||
|
print ("Error: unable to fetch data")
|
||||||
|
|
||||||
|
|
||||||
|
#Return the day of the week as an integer, where Monday is 0 and Sunday is 6.
|
||||||
|
def Give_current_weekday():
|
||||||
|
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday','Saturday', 'Sunday']
|
||||||
|
weekday = days[datetime.datetime.today().weekday()]
|
||||||
|
return weekday
|
||||||
|
|
||||||
|
def Give_current_hour():
|
||||||
|
now = datetime.datetime.now()
|
||||||
|
return now.hour
|
||||||
|
|
||||||
|
|
||||||
|
def Check_server_supposed_XXX(generated_db_in,wanted_status,Wanted_hour,Wanted_day):
|
||||||
|
sql_in=""
|
||||||
|
if wanted_status == "up":
|
||||||
|
sql_in = "select machine.namespace, machine.name, machine.replicas from scenario_hour,machine ,scenario_day_of_week where state_at_" + str(Wanted_hour) + "='1' and state_" + str(Wanted_day) + "='1' and machine.hour_behaviour_id=scenario_hour.id_scenario and machine.day_behaviour_id=scenario_day_of_week.id_scenario;"
|
||||||
|
elif wanted_status == "down":
|
||||||
|
sql_in = "select machine.namespace, machine.name, machine.replicas from scenario_hour,machine ,scenario_day_of_week where not(state_at_" + str(Wanted_hour) + "='1' and state_" + str(Wanted_day) + "='1') and machine.hour_behaviour_id=scenario_hour.id_scenario and machine.day_behaviour_id=scenario_day_of_week.id_scenario;"
|
||||||
|
else:
|
||||||
|
print("error value")
|
||||||
|
print(sql_in)
|
||||||
|
return_value = Launch_sql_query(sql_in, generated_db_in)
|
||||||
|
return return_value
|
||||||
|
|
||||||
|
def Is_the_server_already_wanted_state(id_machine, wanted_state,instance_type):
|
||||||
|
#stopped/running
|
||||||
|
bool_result = ""
|
||||||
|
proxmox = function.proxmox_connection(credentials.proxmox.zeus.url_proxmox,credentials.proxmox.zeus.user,credentials.proxmox.zeus.password)
|
||||||
|
if str(function.check_state_mix(id_machine,wanted_state,proxmox,instance_type)) == str(wanted_state):
|
||||||
|
bool_result = True
|
||||||
|
else:
|
||||||
|
bool_result = False
|
||||||
|
return bool_result
|
||||||
|
|
||||||
|
def all_operations(request,wanted_state,list_machine):
|
||||||
|
for machine_target in list_machine:
|
||||||
|
print(machine_target[1])
|
||||||
|
|
||||||
|
info_to_display = ""
|
||||||
|
if wanted_state == "up":
|
||||||
|
kubernetes_connection.scale_up(request,namespace_name=machine_target[0],deploy_name=machine_target[1],replicas=machine_target[2]);
|
||||||
|
elif wanted_state == "down":
|
||||||
|
kubernetes_connection.scale_down(request,namespace_name=machine_target[0],deploy_name=machine_target[1]);
|
||||||
|
else:
|
||||||
|
print("Incorrect wanted state")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# if not(Is_the_server_already_wanted_state(machine_target[0], wanted_state,machine_target[1])):
|
||||||
|
# function.action(False,machine_target[0],operation_to_perform,machine_target[1])
|
||||||
|
# print(str(machine_target[0])+" is now "+str(wanted_state))
|
||||||
|
# elif Is_the_server_already_wanted_state(machine_target[0], wanted_state,machine_target[1]):
|
||||||
|
# info_to_display = "operation already performed for "+machine_target[2]
|
||||||
|
# print(info_to_display)
|
||||||
|
#return info_to_display
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def main(request):
|
||||||
|
|
||||||
|
#get credentials from the env
|
||||||
|
db_host = os.environ.get('DB_HOST')
|
||||||
|
db_port = os.environ.get('DB_PORT')
|
||||||
|
db_user = os.environ.get('DB_USERNAME')
|
||||||
|
db_password = os.environ.get('DB_PASSWORD')
|
||||||
|
db_name = os.environ.get('CUSTOM_DB_DATABASE',os.environ.get('DB_DATABASE'))
|
||||||
|
|
||||||
|
generated_db = DB_generation(db_host, db_port, db_user, db_password,db_name)
|
||||||
|
##operation:
|
||||||
|
## Server(s) supposed to be UP
|
||||||
|
|
||||||
|
list_servers_up = Check_server_supposed_XXX(generated_db, "up", Give_current_hour(),Give_current_weekday())
|
||||||
|
print("------------------------------------------")
|
||||||
|
print("-----------------UP-----------------------")
|
||||||
|
print("------------------------------------------")
|
||||||
|
print(list_servers_up)
|
||||||
|
print(all_operations(request,"up", list_servers_up))
|
||||||
|
|
||||||
|
|
||||||
|
## Server(s) supposed to be DOWN
|
||||||
|
list_servers_down = Check_server_supposed_XXX(generated_db, "down", Give_current_hour(),Give_current_weekday())
|
||||||
|
|
||||||
|
print("------------------------------------------")
|
||||||
|
print("----------------DOWN----------------------")
|
||||||
|
print("------------------------------------------")
|
||||||
|
print(list_servers_down)
|
||||||
|
print(all_operations(request,"down",list_servers_down))
|
||||||
|
|
||||||
|
|
||||||
|
# disconnect from server
|
||||||
|
generated_db.close()
|
||||||
|
|
||||||
|
#print(Is_the_server_already_wanted_state(112, "stopped"))
|
||||||
|
return HttpResponse('<h1>CMM executed!</h1>')
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
TO DO:
|
||||||
|
EXTRACT TYPE OF MACHINE
|
||||||
|
CREATE FUNCTION TO CHECK IF A MACHINE IS ALREADY DOWN OR NOT
|
||||||
|
ADD FIELD IN SQL WITH PROJECT AND PUT DESCRIPTION -> ATTACH MACHINE TO PROJECT
|
||||||
|
|
||||||
|
"""
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# Generated by Django 4.2.29 on 2026-06-11 19:35
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='CmmData',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=100)),
|
||||||
|
('namespace', models.CharField(max_length=100)),
|
||||||
|
('schedule_day', models.CharField(max_length=100)),
|
||||||
|
('schedule_hour', models.CharField(max_length=100)),
|
||||||
|
('replicas', models.IntegerField()),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'db_table': 'cloudmanager',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
from django.db import models
|
||||||
|
|
||||||
|
class CmmData(models.Model):
|
||||||
|
name = models.CharField(max_length=100)
|
||||||
|
namespace = models.CharField(max_length=100)
|
||||||
|
schedule_day = models.CharField(max_length=100)
|
||||||
|
schedule_hour = models.CharField(max_length=100)
|
||||||
|
replicas = models.IntegerField()
|
||||||
|
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'cloudmanager'
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
from django.http import HttpResponse
|
||||||
|
|
||||||
|
# IMPORT AT THE TOP HERE: This is completely safe!
|
||||||
|
from apps.cloudmanager.models import CmmData
|
||||||
|
|
||||||
|
def coucou(request):
|
||||||
|
# 1. Prepare the data inside the function
|
||||||
|
data = CmmData(
|
||||||
|
name="test",
|
||||||
|
namespace="testspace",
|
||||||
|
schedule_hour="1",
|
||||||
|
schedule_day="deux",
|
||||||
|
replicas=3
|
||||||
|
)
|
||||||
|
|
||||||
|
# 2. This line actually pushes the data into your cloudmanager_db!
|
||||||
|
data.save()
|
||||||
|
|
||||||
|
return HttpResponse('<h1>Hello cmm! Data saved successfully!</h1>')
|
||||||
|
|
||||||
|
def display(request):
|
||||||
|
data = CmmData.objects.all()
|
||||||
|
print(data[0].namespace)
|
||||||
|
return HttpResponse(data)
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
from django.http import HttpResponse
|
||||||
|
from django.http import HttpResponseRedirect
|
||||||
|
from django.shortcuts import render
|
||||||
|
import os
|
||||||
|
import psycopg2
|
||||||
|
from apps.cloudmanager.db_interaction import DB_generation,Check_server_supposed_XXX,Give_current_weekday,Give_current_hour
|
||||||
|
|
||||||
|
|
||||||
|
def hello(request):
|
||||||
|
list_schedule = ['schedule1','schedule2']
|
||||||
|
list_servers_up = [['wiki', 'wikijs', 2], ['book', 'bookstack-db', 1]]
|
||||||
|
return render(request, 'cloudmanager/index.html', {'list_schedule':list_schedule,'list_servers_up':list_servers_up})
|
||||||
|
|
||||||
|
def redirect(request):
|
||||||
|
db_host = os.environ.get('DB_HOST')
|
||||||
|
db_port = os.environ.get('DB_PORT')
|
||||||
|
db_user = os.environ.get('DB_USERNAME')
|
||||||
|
db_password = os.environ.get('DB_PASSWORD')
|
||||||
|
db_name = os.environ.get('CUSTOM_DB_DATABASE',os.environ.get('DB_DATABASE'))
|
||||||
|
|
||||||
|
generated_db = DB_generation(db_host, db_port, db_user, db_password,db_name)
|
||||||
|
##operation:
|
||||||
|
## Server(s) supposed to be UP
|
||||||
|
|
||||||
|
list_servers_up = Check_server_supposed_XXX(generated_db, "up", Give_current_hour(),Give_current_weekday())
|
||||||
|
print(list_servers_up)
|
||||||
|
return render(request, 'cloudmanager/cmm_blank_page.html', {'list_servers_up':list_servers_up})
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
drop table IF EXISTS machine;
|
||||||
|
CREATE TABLE IF NOT EXISTS machine (
|
||||||
|
id integer NOT NULL PRIMARY KEY,
|
||||||
|
namespace varchar(100) NOT null,
|
||||||
|
name varchar(100) NOT null,
|
||||||
|
hour_behaviour_id integer NOT null,
|
||||||
|
day_behaviour_id integer NOT null,
|
||||||
|
replicas integer NOT null
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT into machine (id, namespace, name, hour_behaviour_id, day_behaviour_id,replicas) VALUES (1, 'echo', 'echo-server', 0, 1,1);
|
||||||
|
INSERT into machine (id, namespace, name, hour_behaviour_id, day_behaviour_id,replicas) VALUES (2, 'wiki', 'wikijs', 1, 1,2);
|
||||||
|
INSERT into machine (id, namespace, name, hour_behaviour_id, day_behaviour_id,replicas) VALUES (3, 'book', 'bookstack-db', 2, 1,1);
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
create table scenario_day_of_week
|
||||||
|
(
|
||||||
|
id_scenario integer NOT NULL PRIMARY KEY,
|
||||||
|
name_scenario varchar(255) null,
|
||||||
|
state_Monday BOOLEAN null,
|
||||||
|
state_Tuesday BOOLEAN null,
|
||||||
|
state_Wednesday BOOLEAN null,
|
||||||
|
state_Thursday BOOLEAN null,
|
||||||
|
state_Friday BOOLEAN null,
|
||||||
|
state_Saturday BOOLEAN null,
|
||||||
|
state_Sunday BOOLEAN null
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO scenario_day_of_week (id_scenario, name_scenario, state_Monday, state_Tuesday, state_Wednesday, state_Thursday, state_Friday, state_Saturday, state_Sunday) VALUES (0, 'always off', FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||||
|
INSERT INTO scenario_day_of_week (id_scenario, name_scenario, state_Monday, state_Tuesday, state_Wednesday, state_Thursday, state_Friday, state_Saturday, state_Sunday) VALUES (1, 'always on', TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
create table scenario_hour
|
||||||
|
(
|
||||||
|
id_scenario integer NOT NULL PRIMARY KEY,
|
||||||
|
name_scenario varchar(255) null,
|
||||||
|
state_at_0 BOOLEAN null,
|
||||||
|
state_at_1 BOOLEAN null,
|
||||||
|
state_at_2 BOOLEAN null,
|
||||||
|
state_at_3 BOOLEAN null,
|
||||||
|
state_at_4 BOOLEAN null,
|
||||||
|
state_at_5 BOOLEAN null,
|
||||||
|
state_at_6 BOOLEAN null,
|
||||||
|
state_at_7 BOOLEAN null,
|
||||||
|
state_at_8 BOOLEAN null,
|
||||||
|
state_at_9 BOOLEAN null,
|
||||||
|
state_at_10 BOOLEAN null,
|
||||||
|
state_at_11 BOOLEAN null,
|
||||||
|
state_at_12 BOOLEAN null,
|
||||||
|
state_at_13 BOOLEAN null,
|
||||||
|
state_at_14 BOOLEAN null,
|
||||||
|
state_at_15 BOOLEAN null,
|
||||||
|
state_at_16 BOOLEAN null,
|
||||||
|
state_at_17 BOOLEAN null,
|
||||||
|
state_at_18 BOOLEAN null,
|
||||||
|
state_at_19 BOOLEAN null,
|
||||||
|
state_at_20 BOOLEAN null,
|
||||||
|
state_at_21 BOOLEAN null,
|
||||||
|
state_at_22 BOOLEAN null,
|
||||||
|
state_at_23 BOOLEAN null
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO scenario_hour (id_scenario, name_scenario, state_at_0, state_at_1, state_at_2, state_at_3, state_at_4, state_at_5, state_at_6, state_at_7, state_at_8, state_at_9, state_at_10, state_at_11, state_at_12, state_at_13, state_at_14, state_at_15, state_at_16, state_at_17, state_at_18, state_at_19, state_at_20, state_at_21, state_at_22, state_at_23) VALUES (0, 'always off uk', FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||||
|
INSERT INTO scenario_hour (id_scenario, name_scenario, state_at_0, state_at_1, state_at_2, state_at_3, state_at_4, state_at_5, state_at_6, state_at_7, state_at_8, state_at_9, state_at_10, state_at_11, state_at_12, state_at_13, state_at_14, state_at_15, state_at_16, state_at_17, state_at_18, state_at_19, state_at_20, state_at_21, state_at_22, state_at_23) VALUES (1, 'always on uk', TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
|
||||||
|
INSERT INTO scenario_hour (id_scenario, name_scenario, state_at_0, state_at_1, state_at_2, state_at_3, state_at_4, state_at_5, state_at_6, state_at_7, state_at_8, state_at_9, state_at_10, state_at_11, state_at_12, state_at_13, state_at_14, state_at_15, state_at_16, state_at_17, state_at_18, state_at_19, state_at_20, state_at_21, state_at_22, state_at_23) VALUES (2, 'awake hours uk', FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
from django.http import HttpResponse
|
||||||
|
from django.views.decorators.http import require_POST
|
||||||
|
#from django.contrib.auth.decorators import login_required # optional but recommended
|
||||||
|
|
||||||
|
def trigger_my_action(request):
|
||||||
|
# 1. Run your Django module/function
|
||||||
|
result = "1"
|
||||||
|
print('here')
|
||||||
|
# 2. Return ONLY the HTML fragment you want to show on the page
|
||||||
|
# This will replace the content inside the "hx-target" div
|
||||||
|
return HttpResponse("Done!")
|
||||||
|
|
||||||
|
|
||||||
|
#@login_required
|
||||||
|
@require_POST
|
||||||
|
def change_schedule(request):
|
||||||
|
# HTMX sends these via standard POST data
|
||||||
|
schedule_id = request.POST.get('schedule_id')
|
||||||
|
server_name = request.POST.get('server_name')
|
||||||
|
|
||||||
|
if not schedule_id or not server_name:
|
||||||
|
return HttpResponse("<span style='color: red;'>Missing parameters.</span>", status=400)
|
||||||
|
|
||||||
|
try:
|
||||||
|
# --- Your Core Logic Here ---
|
||||||
|
# e.g., Server.objects.filter(name=server_name).update(schedule_id=schedule_id)
|
||||||
|
print(f"Updating {server_name} to schedule profile {schedule_id}")
|
||||||
|
|
||||||
|
# Return a success message that will instantly inject into the server's status div
|
||||||
|
return HttpResponse("<span style='color: green;'>✓ Updated successfully!</span>")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
return HttpResponse(f"<span style='color: red;'>Error: {str(e)}</span>", status=500)
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
|
||||||
|
def home(request):
|
||||||
|
thislist = ["apple", "banana", "cherry"]
|
||||||
|
return render(request, 'dashboard/home.html',{'thislist': thislist})
|
||||||
|
|
||||||
|
def about(request):
|
||||||
|
thislist = ["apple", "banana", "cherry"]
|
||||||
|
return render(request, 'dashboard/about.html',{'thislist': thislist})
|
||||||
|
|
||||||
|
def success(request):
|
||||||
|
return render(request, 'dashboard/start.html',{'deployment': 'django','url':'https://google.com'})
|
||||||
|
|
||||||
|
def scale_up(request,namespace_name,deploy_name):
|
||||||
|
baseurl = "{0}://{1}{2}".format(request.scheme, request.get_host(), request.path)
|
||||||
|
return render(request, 'dashboard/start.html', {'namespace':namespace_name,'deployment': deploy_name, 'url': 'https://namespace.com','baseurl': baseurl})
|
||||||
|
|
||||||
|
def scale_down(request,namespace_name,deploy_name):
|
||||||
|
baseurl = "{0}://{1}{2}".format(request.scheme, request.get_host(), request.path)
|
||||||
|
return render(request, 'dashboard/shutdown.html', {'namespace':namespace_name,'deployment': deploy_name, 'url': 'https://namespace.com','baseurl': baseurl})
|
||||||
+17
-4
@@ -17,15 +17,19 @@ import urllib.request
|
|||||||
def hello(request):
|
def hello(request):
|
||||||
return HttpResponse('<h1>Hello k8s!</h1>')
|
return HttpResponse('<h1>Hello k8s!</h1>')
|
||||||
|
|
||||||
def scale_up(request,namespace_name,deploy_name):
|
def echoHello():
|
||||||
|
print("hello from k8s")
|
||||||
|
return "returned from k8s"
|
||||||
|
|
||||||
|
def scale_up(request,namespace_name,deploy_name,replicas=1):
|
||||||
config.load_kube_config(config_file='/kubeconfig/config')
|
config.load_kube_config(config_file='/kubeconfig/config')
|
||||||
api = client.AppsV1Api()
|
api = client.AppsV1Api()
|
||||||
deployment = api.read_namespaced_deployment(name=deploy_name, namespace=namespace_name)
|
deployment = api.read_namespaced_deployment(name=deploy_name, namespace=namespace_name)
|
||||||
deployment.spec.replicas = 1
|
deployment.spec.replicas = replicas
|
||||||
resp = api.patch_namespaced_deployment(
|
resp = api.patch_namespaced_deployment(
|
||||||
name=deploy_name, namespace=namespace_name, body=deployment);
|
name=deploy_name, namespace=namespace_name, body=deployment);
|
||||||
#return HttpResponse('<h1>Scaled up !</h1>')
|
#return HttpResponse('<h1>Scaled up !</h1>')
|
||||||
return render(request, 'start.html', {'namespace':namespace_name,'deployment': deploy_name, 'url': 'https://namespace.com'})
|
return render(request, 'dashboard/start.html', {'namespace':namespace_name,'deployment': deploy_name, 'url': 'https://namespace.com'})
|
||||||
|
|
||||||
|
|
||||||
def scale_down(request,namespace_name,deploy_name):
|
def scale_down(request,namespace_name,deploy_name):
|
||||||
@@ -36,9 +40,18 @@ def scale_down(request,namespace_name,deploy_name):
|
|||||||
resp = api.patch_namespaced_deployment(
|
resp = api.patch_namespaced_deployment(
|
||||||
name=deploy_name, namespace=namespace_name, body=deployment);
|
name=deploy_name, namespace=namespace_name, body=deployment);
|
||||||
#return HttpResponse('<h1>Scaled down !</h1>')
|
#return HttpResponse('<h1>Scaled down !</h1>')
|
||||||
return render(request, 'shutdown.html',
|
return render(request, 'dashboard/shutdown.html',
|
||||||
{'namespace': namespace_name, 'deployment': deploy_name, 'url': 'https://namespace.com'})
|
{'namespace': namespace_name, 'deployment': deploy_name, 'url': 'https://namespace.com'})
|
||||||
|
|
||||||
|
def Import_Deployments():
|
||||||
|
config.load_kube_config(config_file='/kubeconfig/config')
|
||||||
|
deployment = api.list_namespaced_deployment('servarr')
|
||||||
|
len(deployment.items) #list all deployment inside the namespace
|
||||||
|
test.items[0].spec.template.spec.containers[0].name # name the first deploy within the namespace
|
||||||
|
test.items[2].spec.template.spec.containers[0].name # name the third deploy within the namespace
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
def nodes(request):
|
def nodes(request):
|
||||||
config.load_kube_config(config_file='/code/kubeconfig')
|
config.load_kube_config(config_file='/code/kubeconfig')
|
||||||
v1 = client.CoreV1Api()
|
v1 = client.CoreV1Api()
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
from django.contrib import admin,messages
|
||||||
|
from django.utils.translation import ngettext
|
||||||
|
from .models import SimpsonsData
|
||||||
|
# Register your models here.
|
||||||
|
|
||||||
|
|
||||||
|
@admin.action(description="Mark episode as seen")
|
||||||
|
def make_seen(modeladmin, request, queryset):
|
||||||
|
updated = queryset.update(seen="True")
|
||||||
|
modeladmin.message_user(
|
||||||
|
request,
|
||||||
|
ngettext(
|
||||||
|
"%d episode was successfully marked as seen.",
|
||||||
|
"%d episodes were successfully marked as seen.",
|
||||||
|
updated,
|
||||||
|
)
|
||||||
|
% updated,
|
||||||
|
messages.SUCCESS,
|
||||||
|
)
|
||||||
|
|
||||||
|
@admin.action(description="Mark episode as not seen")
|
||||||
|
def make_unseen(modeladmin, request, queryset):
|
||||||
|
updated = queryset.update(seen="False")
|
||||||
|
modeladmin.message_user(
|
||||||
|
request,
|
||||||
|
ngettext(
|
||||||
|
"%d episode was successfully marked as not seen.",
|
||||||
|
"%d episodes were successfully marked as not seen.",
|
||||||
|
updated,
|
||||||
|
)
|
||||||
|
% updated,
|
||||||
|
messages.SUCCESS,
|
||||||
|
)
|
||||||
|
|
||||||
|
@admin.register(SimpsonsData)
|
||||||
|
class EpisodeAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('season', 'episode', 'url', 'seen')
|
||||||
|
list_filter = ['seen']
|
||||||
|
fields = ['season', 'episode', 'url', 'seen']
|
||||||
|
actions = [make_seen,make_unseen]
|
||||||
@@ -11,6 +11,11 @@ import psycopg2
|
|||||||
import random
|
import random
|
||||||
import mimetypes
|
import mimetypes
|
||||||
|
|
||||||
|
class RandomSimpsonsConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'apps.random_simpsons'
|
||||||
|
label = 'simpsons'
|
||||||
|
|
||||||
def DB_generation(host_in,port_in,user_in,password_in,db_in):
|
def DB_generation(host_in,port_in,user_in,password_in,db_in):
|
||||||
#db = pymysql.connect(host=host_in, port=port_in, user=user_in, passwd=password_in,db=db_in)
|
#db = pymysql.connect(host=host_in, port=port_in, user=user_in, passwd=password_in,db=db_in)
|
||||||
db = psycopg2.connect(host=host_in, port=port_in, user=user_in, password=password_in,database=db_in)
|
db = psycopg2.connect(host=host_in, port=port_in, user=user_in, password=password_in,database=db_in)
|
||||||
@@ -63,7 +68,7 @@ def download_mo(request,file):
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
#def template(request):
|
#def template(request):
|
||||||
# rendered = render_to_string("my_template.html", {"foo": "bar"})
|
# rendered = render_to_string("random_simpsons/my_template.html", {"foo": "bar"})
|
||||||
#return HttpResponse('<h1>Hello !</h1>')
|
#return HttpResponse('<h1>Hello !</h1>')
|
||||||
|
|
||||||
def simpsons(request):
|
def simpsons(request):
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
from django.db import models
|
||||||
|
|
||||||
|
class SimpsonsData(models.Model):
|
||||||
|
season = models.IntegerField()
|
||||||
|
episode = models.IntegerField()
|
||||||
|
url = models.CharField(max_length=1000)
|
||||||
|
seen = models.BooleanField()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'episodes'
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
import random
|
||||||
|
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.db.models import Count
|
||||||
|
from django.shortcuts import render
|
||||||
|
from apps.random_simpsons.models import SimpsonsData
|
||||||
|
|
||||||
|
|
||||||
|
def hello(request):
|
||||||
|
return HttpResponse('<h1>Hello Django!</h1>')
|
||||||
|
|
||||||
|
def random_episode(request):
|
||||||
|
simpsons_data_object = SimpsonsData.objects.using('simpsons_db')
|
||||||
|
maximum_number_of_seasons = SimpsonsData.objects.aggregate(unique_season=Count('season', distinct=True))['unique_season']
|
||||||
|
|
||||||
|
print("maximum_number_of_seasons: "+str(maximum_number_of_seasons))
|
||||||
|
|
||||||
|
random_seasons = random.randint(1, maximum_number_of_seasons)
|
||||||
|
print("random season: " + str(random_seasons))
|
||||||
|
|
||||||
|
print("--- START SIMPSONS LOG ---")
|
||||||
|
simpson_stuff = simpsons_data_object.filter(season=random_seasons)
|
||||||
|
for line in simpson_stuff:
|
||||||
|
print(line)
|
||||||
|
print("--- END SIMPSONS LOG ---")
|
||||||
|
|
||||||
|
|
||||||
|
# Keeps Django happy by returning a valid web response
|
||||||
|
return HttpResponse('Check your terminal log!')
|
||||||
|
|
||||||
|
def simpsons(request):
|
||||||
|
#dev settings
|
||||||
|
#generated_db = DB_generation("192.168.88.50",32345, "django_username", "Suffrage-Moneybags-Illusion7","django")
|
||||||
|
#production settings
|
||||||
|
generated_db = DB_generation("django-db-svc",5432, "django_username", "Suffrage-Moneybags-Illusion7","django")
|
||||||
|
|
||||||
|
cursor = generated_db.cursor()
|
||||||
|
|
||||||
|
#get max number of season
|
||||||
|
maximum_number_of_seasons = Launch_sql_query("SELECT COUNT(DISTINCT season) as result FROM episodes;",generated_db)
|
||||||
|
|
||||||
|
boolean_restart = True;
|
||||||
|
while (boolean_restart):
|
||||||
|
|
||||||
|
random_seasons = random.randint(1, maximum_number_of_seasons)
|
||||||
|
print("random season: " + str(random_seasons))
|
||||||
|
|
||||||
|
|
||||||
|
#get max number of epiosde for this season
|
||||||
|
maximum_number_of_episodes_query = "SELECT COUNT(url) as result FROM episodes WHERE season = " + str(random_seasons) + ";"
|
||||||
|
|
||||||
|
maximum_number_of_episodes = Launch_sql_query(maximum_number_of_episodes_query,generated_db)
|
||||||
|
|
||||||
|
random_episode = random.randint(1, maximum_number_of_episodes)
|
||||||
|
print("random episode: " + str(random_episode))
|
||||||
|
|
||||||
|
#check if the episode was already seen
|
||||||
|
check_if_already_seen_query = "select seen from episodes where season="+ str(random_seasons) +" and episode = "+ str(random_episode) +";"
|
||||||
|
if not Launch_sql_query(check_if_already_seen_query, generated_db):
|
||||||
|
boolean_restart = False
|
||||||
|
else:
|
||||||
|
print("episode "+str(random_episode)+" from season "+str(random_seasons)+" already seen")
|
||||||
|
|
||||||
|
url_from_episode_season_query = "select url from episodes where season="+ str(random_seasons) +" and episode = "+ str(random_episode) +";"
|
||||||
|
generated_url = Launch_sql_query(url_from_episode_season_query,generated_db)
|
||||||
|
|
||||||
|
#mark as seen
|
||||||
|
url_from_episode_season_query = "update episodes set seen = True where season=" + str(random_seasons) + " and episode = " + str(random_episode) + ";"
|
||||||
|
Launch_sql_query(url_from_episode_season_query, generated_db)
|
||||||
|
|
||||||
|
generated_db.commit()
|
||||||
|
generated_db.close()
|
||||||
|
#return HttpResponse(str(generated_url))
|
||||||
|
return redirect(str(generated_url))
|
||||||
@@ -2,7 +2,6 @@ from django.apps import AppConfig
|
|||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
#from jinja2 import Environment, FileSystemLoader
|
|
||||||
from django.core.files import File
|
from django.core.files import File
|
||||||
from kubernetes import client, config
|
from kubernetes import client, config
|
||||||
from celery import shared_task
|
from celery import shared_task
|
||||||
@@ -10,6 +9,7 @@ from celery import shared_task
|
|||||||
from lxml import html
|
from lxml import html
|
||||||
import requests
|
import requests
|
||||||
import os
|
import os
|
||||||
|
import json
|
||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
import mimetypes
|
import mimetypes
|
||||||
@@ -33,15 +33,16 @@ proxies = {
|
|||||||
"https" : proxy_url
|
"https" : proxy_url
|
||||||
}
|
}
|
||||||
|
|
||||||
destination_folder = "/tmp/stash/"
|
destination_folder = "/stash/"
|
||||||
|
|
||||||
def hello(request):
|
def hello(request):
|
||||||
return HttpResponse('<h1>Hello stash!</h1>')
|
return HttpResponse('<h1>Hello stash!</h1>')
|
||||||
def form(request):
|
def form(request):
|
||||||
return render(request, 'stash_form.html',{})
|
return render(request, 'stash/stash_form.html',{})
|
||||||
def album(request):
|
def album(request):
|
||||||
return render(request, 'album_form.html',{})
|
return render(request, 'stash/album_form.html',{})
|
||||||
|
def simple(request):
|
||||||
|
return render(request, 'stash/simple_form.html',{})
|
||||||
def check_and_create_destination_folder(name):
|
def check_and_create_destination_folder(name):
|
||||||
#check if the output directory exist and create if not
|
#check if the output directory exist and create if not
|
||||||
if not os.path.isdir(destination_folder):
|
if not os.path.isdir(destination_folder):
|
||||||
@@ -89,7 +90,7 @@ def album_downloader(name,url,external_galleries):
|
|||||||
#search for the href that contains the galleries
|
#search for the href that contains the galleries
|
||||||
webpage_all_album_url = webpage.xpath("//a[contains(@href,'pornpics.com/galleries/')]/@href")
|
webpage_all_album_url = webpage.xpath("//a[contains(@href,'pornpics.com/galleries/')]/@href")
|
||||||
#print(webpage_all_album_url[3])
|
#print(webpage_all_album_url[3])
|
||||||
#print(webpage_all_album_url)
|
#print(webpage_all_album_url)
|
||||||
|
|
||||||
|
|
||||||
for album in webpage_all_album_url:
|
for album in webpage_all_album_url:
|
||||||
@@ -116,12 +117,69 @@ def images_downloader(name,images_url_list,destination_named_folder):
|
|||||||
opener = urlrequest.build_opener(proxy)
|
opener = urlrequest.build_opener(proxy)
|
||||||
|
|
||||||
urlrequest.install_opener(opener)
|
urlrequest.install_opener(opener)
|
||||||
urlrequest.urlretrieve(image_url, filename )
|
try:
|
||||||
|
urlrequest.urlretrieve(image_url, filename )
|
||||||
|
except:
|
||||||
|
print("Can't download "+filename+" -- "+image_url)
|
||||||
|
individual_image_downloader.delay(image_url=image_url, filename=filename)
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
@shared_task()
|
||||||
|
def individual_image_downloader(image_url, filename ):
|
||||||
|
print("Downloading again: "+filename+" -- "+image_url)
|
||||||
|
|
||||||
|
opener = urlrequest.build_opener(proxy)
|
||||||
|
|
||||||
|
urlrequest.install_opener(opener)
|
||||||
|
try:
|
||||||
|
urlrequest.urlretrieve(image_url, filename )
|
||||||
|
except:
|
||||||
|
print("Still Can't download "+filename+" -- "+image_url+" == Cancelling")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def simple_form(request):
|
||||||
|
name = request.GET.get('name')
|
||||||
|
reddit_downloader(username=name)
|
||||||
|
|
||||||
|
text_generated = "successfully sent to the reddit downloader"
|
||||||
|
return HttpResponse(text_generated, content_type="text/plain")
|
||||||
|
|
||||||
|
def reddit_downloader(username):
|
||||||
|
|
||||||
|
#create the prerequisites folder
|
||||||
|
destination_named_folder = check_and_create_destination_folder(name=username)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
url = "https://www.reddit.com/user/"+username+"/submitted/.json?limit=1000"
|
||||||
|
opener = urlrequest.build_opener(proxy)
|
||||||
|
urlrequest.install_opener(opener)
|
||||||
|
|
||||||
|
req = urlrequest.Request(url)
|
||||||
|
urlcurl = urlrequest.urlopen(req).read()
|
||||||
|
data = json.loads(urlcurl)
|
||||||
|
|
||||||
|
picture_list=[]
|
||||||
|
for children in data['data']['children']:
|
||||||
|
print("adding to the list : "+children['data']['url'])
|
||||||
|
picture_list.append(children['data']['url'])
|
||||||
|
|
||||||
|
images_downloader.delay(name=username,images_url_list=picture_list,destination_named_folder=destination_named_folder)
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def redgif_donloader(username):
|
||||||
|
#on te front page of the user , https://www.redgifs.com/users/princesspizookie
|
||||||
|
# F12 and search network , find something that start as api.redgifs.com
|
||||||
|
# and the file is search?order=new&count=40&type=g
|
||||||
|
# copy as curl and you got the bearer
|
||||||
|
|
||||||
|
#curl curl 'https://api.redgifs.com/v2/users/princesspizookie/search?order=new&count=40&type=g'
|
||||||
|
#and you get the URLS , needs to be parsedw
|
||||||
|
return 0
|
||||||
def incremental(request):
|
def incremental(request):
|
||||||
return render(request, 'incremental_form.html',{})
|
return render(request, 'stash/incremental_form.html',{})
|
||||||
|
|
||||||
def incremental_form(request):
|
def incremental_form(request):
|
||||||
name = request.GET.get('name')
|
name = request.GET.get('name')
|
||||||
@@ -165,9 +223,10 @@ def increment_and_download(minimum_increment,maximum_increment,url,url_suffix,na
|
|||||||
increment_generated ='000' + str(increment)
|
increment_generated ='000' + str(increment)
|
||||||
|
|
||||||
url_generated = url+increment_generated+url_suffix
|
url_generated = url+increment_generated+url_suffix
|
||||||
|
print(url_generated)
|
||||||
destination_filename = increment_generated+url_suffix
|
destination_filename = increment_generated+url_suffix
|
||||||
destination_file = os.path.join(destination_named_folder,destination_filename)
|
destination_file = os.path.join(destination_named_folder,destination_filename)
|
||||||
|
print(destination_file)
|
||||||
opener = urlrequest.build_opener(proxy)
|
opener = urlrequest.build_opener(proxy)
|
||||||
urlrequest.install_opener(opener)
|
urlrequest.install_opener(opener)
|
||||||
urlrequest.urlretrieve(url_generated, destination_file )
|
urlrequest.urlretrieve(url_generated, destination_file )
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
@@ -9,4 +9,4 @@ def hello(request):
|
|||||||
|
|
||||||
|
|
||||||
def home(request):
|
def home(request):
|
||||||
return render(request, 'listing.html')
|
return render(request, 'stash/listing.html')
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import redis
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.http import HttpResponseRedirect
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
r = redis.Redis(
|
||||||
|
host='django-redis-svc',
|
||||||
|
port=6379,
|
||||||
|
db=0 # The default Redis database index
|
||||||
|
)
|
||||||
|
|
||||||
|
def hello(request):
|
||||||
|
return HttpResponse('<h1>Hello redirect!</h1>')
|
||||||
|
|
||||||
|
|
||||||
|
def redirect(request):
|
||||||
|
return render(request, 'website_redirection/redirect_form.html',{})
|
||||||
|
|
||||||
|
def clearkey_process(request):
|
||||||
|
key = request.GET.get('key')
|
||||||
|
r.delete(key)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def redirect_process(request):
|
||||||
|
key = request.GET.get('key')
|
||||||
|
value = request.GET.get('value')
|
||||||
|
key = key.lower()
|
||||||
|
|
||||||
|
r.set(key, value)
|
||||||
|
|
||||||
|
text_generated = "successfully set "+value+" to "+key
|
||||||
|
return HttpResponse(text_generated, content_type="text/plain")
|
||||||
|
|
||||||
|
def display_key(request,key):
|
||||||
|
value = r.get(key)
|
||||||
|
value_extracted = str(value.decode())
|
||||||
|
text_generated = key+" is set to "+value_extracted
|
||||||
|
return HttpResponse(text_generated, content_type="text/plain")
|
||||||
|
|
||||||
|
|
||||||
|
def redirect_to_key(request,key):
|
||||||
|
value = r.get(key)
|
||||||
|
if value == None:
|
||||||
|
icon_url = r.get('icon')
|
||||||
|
if icon_url == None:
|
||||||
|
icon_url = "https://cdn-icons-png.flaticon.com/512/6402/6402576.png"
|
||||||
|
print(key+" is not setup, displaying default page")
|
||||||
|
return render(request, 'website_redirection/blank_page.html', {'title': key,'icon_url':icon_url})
|
||||||
|
else:
|
||||||
|
value_extracted = str(value.decode('utf-8'))
|
||||||
|
print(key+" is setup to : "+value_extracted)
|
||||||
|
print(value_extracted)
|
||||||
|
return HttpResponseRedirect(value_extracted)
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
"""
|
||||||
|
URL configuration for django_code project.
|
||||||
|
|
||||||
|
The `urlpatterns` list routes URLs to views. For more information please see:
|
||||||
|
https://docs.djangoproject.com/en/4.2/topics/http/urls/
|
||||||
|
Examples:
|
||||||
|
Function views
|
||||||
|
1. Add an import: from my_app import views
|
||||||
|
2. Add a URL to urlpatterns: path('', views.home, name='home')
|
||||||
|
Class-based views
|
||||||
|
1. Add an import: from other_app.views import Home
|
||||||
|
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
|
||||||
|
Including another URLconf
|
||||||
|
1. Import the include() function: from django.urls import include, path
|
||||||
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||||
|
"""
|
||||||
|
from django.contrib import admin
|
||||||
|
from django.urls import path
|
||||||
|
from apps.website_redirection import apps as website_redirectionapp
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
# path('admin/', admin.site.urls),
|
||||||
|
|
||||||
|
################### Redirect ###################
|
||||||
|
path('', website_redirectionapp.redirect),
|
||||||
|
path('hello/', website_redirectionapp.hello),
|
||||||
|
path('set/', website_redirectionapp.redirect),
|
||||||
|
path('get/<str:key>', website_redirectionapp.display_key),
|
||||||
|
path('go/<str:key>', website_redirectionapp.redirect_to_key),
|
||||||
|
path('redirect-form/', website_redirectionapp.redirect_process, name='submit_form'),
|
||||||
|
path('clearkey/', website_redirectionapp.clearkey_process, name='submit_form'),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
from django.shortcuts import render
|
|
||||||
|
|
||||||
|
|
||||||
def home(request):
|
|
||||||
thislist = ["apple", "banana", "cherry"]
|
|
||||||
return render(request, 'home.html',{'thislist': thislist})
|
|
||||||
|
|
||||||
def about(request):
|
|
||||||
thislist = ["apple", "banana", "cherry"]
|
|
||||||
return render(request, 'about.html',{'thislist': thislist})
|
|
||||||
|
|
||||||
def success(request):
|
|
||||||
return render(request, 'start.html',{'deployment': 'django','url':'https://google.com'})
|
|
||||||
|
|
||||||
def scale_up(request,namespace_name,deploy_name):
|
|
||||||
baseurl = "{0}://{1}{2}".format(request.scheme, request.get_host(), request.path)
|
|
||||||
return render(request, 'start.html', {'namespace':namespace_name,'deployment': deploy_name, 'url': 'https://namespace.com','baseurl': baseurl})
|
|
||||||
|
|
||||||
def scale_down(request,namespace_name,deploy_name):
|
|
||||||
baseurl = "{0}://{1}{2}".format(request.scheme, request.get_host(), request.path)
|
|
||||||
return render(request, 'shutdown.html', {'namespace':namespace_name,'deployment': deploy_name, 'url': 'https://namespace.com','baseurl': baseurl})
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,7 @@
|
|||||||
|
from django.conf import settings
|
||||||
|
from django_hosts import patterns, host
|
||||||
|
|
||||||
|
host_patterns = patterns('',
|
||||||
|
host(r"django-testing", settings.ROOT_URLCONF, name="django-testing"),
|
||||||
|
host(r"redirect", 'apps.website_redirection.urls', name="redirect"),
|
||||||
|
)
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# routers.py
|
||||||
|
|
||||||
|
class ProjectDatabaseRouter:
|
||||||
|
"""
|
||||||
|
A router to control all database operations on models in the
|
||||||
|
simpsons and cloudmanager applications.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def db_for_read(self, model, **hints):
|
||||||
|
"""Attempts to read simpsons and cloudmanager models go to their specific dbs."""
|
||||||
|
if model._meta.app_label == 'simpsons':
|
||||||
|
return 'simpsons_db'
|
||||||
|
if model._meta.app_label == 'cloudmanager':
|
||||||
|
return 'cloudmanager_db'
|
||||||
|
return 'default'
|
||||||
|
|
||||||
|
def db_for_write(self, model, **hints):
|
||||||
|
"""Attempts to write simpsons and cloudmanager models go to their specific dbs."""
|
||||||
|
if model._meta.app_label == 'simpsons':
|
||||||
|
return 'simpsons_db'
|
||||||
|
if model._meta.app_label == 'cloudmanager':
|
||||||
|
return 'cloudmanager_db'
|
||||||
|
return 'default'
|
||||||
|
|
||||||
|
def allow_relation(self, obj1, obj2, **hints):
|
||||||
|
"""Allow relations if both models are in the same database."""
|
||||||
|
# Prevents accidental foreign key relationships across different physical DBs
|
||||||
|
if (
|
||||||
|
obj1._meta.app_label in ['simpsons', 'cloudmanager'] or
|
||||||
|
obj2._meta.app_label in ['simpsons', 'cloudmanager']
|
||||||
|
):
|
||||||
|
return obj1._meta.app_label == obj2._meta.app_label
|
||||||
|
return None
|
||||||
|
|
||||||
|
def allow_migrate(self, db, app_label, model_name=None, **hints):
|
||||||
|
"""Ensure the app's models only show up in the designated database."""
|
||||||
|
if app_label == 'simpsons':
|
||||||
|
return db == 'simpsons_db'
|
||||||
|
if app_label == 'cloudmanager':
|
||||||
|
return db == 'cloudmanager_db'
|
||||||
|
|
||||||
|
# Ensure default Django apps (auth, sessions, etc.) don't migrate into simpsons/cloudmanager
|
||||||
|
if db in ['simpsons_db', 'cloudmanager_db']:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return None
|
||||||
@@ -9,7 +9,7 @@ https://docs.djangoproject.com/en/4.2/topics/settings/
|
|||||||
For the full list of settings and their values, see
|
For the full list of settings and their values, see
|
||||||
https://docs.djangoproject.com/en/4.2/ref/settings/
|
https://docs.djangoproject.com/en/4.2/ref/settings/
|
||||||
"""
|
"""
|
||||||
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||||
@@ -23,10 +23,14 @@ BASE_DIR = Path(__file__).resolve().parent.parent
|
|||||||
SECRET_KEY = 'django-insecure-71%)_#e#o9-dl2o^6mfud-*rw+4+8vy-nd*bzeier&(34ap-p9'
|
SECRET_KEY = 'django-insecure-71%)_#e#o9-dl2o^6mfud-*rw+4+8vy-nd*bzeier&(34ap-p9'
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = True
|
#DEBUG = os.getenv("DEBUG")
|
||||||
|
DEBUG = os.getenv("DEBUG", "False").lower() in ("true", "1", "t")
|
||||||
|
|
||||||
ALLOWED_HOSTS = ['reverse.tryton.geeraert.eu','192.168.4.100','django.tryton.geeraert.eu','localhost']
|
|
||||||
|
|
||||||
|
ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS").split(",")
|
||||||
|
CSRF_TRUSTED_ORIGINS=[]
|
||||||
|
for ALLOWED_HOST in os.getenv("ALLOWED_HOSTS").split(","):
|
||||||
|
CSRF_TRUSTED_ORIGINS.append("https://"+str(ALLOWED_HOST))
|
||||||
|
|
||||||
# Application definition
|
# Application definition
|
||||||
|
|
||||||
@@ -38,9 +42,13 @@ INSTALLED_APPS = [
|
|||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'bootstrap5',
|
'bootstrap5',
|
||||||
|
'django_hosts',
|
||||||
|
'apps.cloudmanager.apps.CloudmanagerConfig',
|
||||||
|
'apps.random_simpsons.apps.RandomSimpsonsConfig',
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
'django_hosts.middleware.HostsRequestMiddleware',
|
||||||
'django.middleware.security.SecurityMiddleware',
|
'django.middleware.security.SecurityMiddleware',
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
@@ -48,15 +56,21 @@ MIDDLEWARE = [
|
|||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
|
'django_hosts.middleware.HostsResponseMiddleware',
|
||||||
]
|
]
|
||||||
|
|
||||||
ROOT_URLCONF = 'django_code.urls'
|
ROOT_URLCONF = 'django_code.urls'
|
||||||
|
ROOT_HOSTCONF = 'django_code.hosts'
|
||||||
|
DEFAULT_HOST = 'django-testing'
|
||||||
|
|
||||||
|
|
||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
{
|
{
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
#'DIRS': ["/code/django_code/templates","/code/django_code/dashboard/templates/"],
|
#'DIRS': ["/code/django_code/templates","/code/django_code/dashboard/templates/"],
|
||||||
'DIRS': [BASE_DIR / "templates","django_code/dashboard/templates/","django_code/stash_management/templates"],
|
'DIRS': [
|
||||||
|
BASE_DIR / "templates"
|
||||||
|
],
|
||||||
'APP_DIRS': True,
|
'APP_DIRS': True,
|
||||||
'OPTIONS': {
|
'OPTIONS': {
|
||||||
'context_processors': [
|
'context_processors': [
|
||||||
@@ -77,11 +91,27 @@ WSGI_APPLICATION = 'django_code.wsgi.application'
|
|||||||
|
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'django.db.backends.sqlite3',
|
'ENGINE': 'django.db.backends.sqlite3',
|
||||||
'NAME': BASE_DIR / 'db.sqlite3',
|
'NAME': BASE_DIR / 'db.sqlite3',
|
||||||
}
|
},
|
||||||
|
'cloudmanager_db': {
|
||||||
|
'ENGINE': 'django.db.backends.postgresql',
|
||||||
|
'NAME': 'cloudmanager',
|
||||||
|
'USER': os.environ.get('DB_USERNAME'),
|
||||||
|
'PASSWORD': os.environ.get('DB_PASSWORD'),
|
||||||
|
'HOST': os.environ.get('DB_HOST'),
|
||||||
|
'PORT': os.environ.get('DB_PORT'),
|
||||||
|
},
|
||||||
|
'simpsons_db': {
|
||||||
|
'ENGINE': 'django.db.backends.postgresql',
|
||||||
|
'NAME': 'simpsons',
|
||||||
|
'USER': os.environ.get('DB_USERNAME'),
|
||||||
|
'PASSWORD': os.environ.get('DB_PASSWORD'),
|
||||||
|
'HOST': os.environ.get('DB_HOST'),
|
||||||
|
'PORT': os.environ.get('DB_PORT'),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
DATABASE_ROUTERS = ['django_code.routers.ProjectDatabaseRouter']
|
||||||
|
|
||||||
# Password validation
|
# Password validation
|
||||||
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
|
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
|
||||||
@@ -117,7 +147,14 @@ USE_TZ = True
|
|||||||
# Static files (CSS, JavaScript, Images)
|
# Static files (CSS, JavaScript, Images)
|
||||||
# https://docs.djangoproject.com/en/4.2/howto/static-files/
|
# https://docs.djangoproject.com/en/4.2/howto/static-files/
|
||||||
|
|
||||||
STATIC_URL = 'static/'
|
STATIC_URL = '/static/'
|
||||||
|
|
||||||
|
STATICFILES_DIRS = [
|
||||||
|
BASE_DIR / "templates/cloudmanager/css",
|
||||||
|
BASE_DIR / "templates/cloudmanager/fonts",
|
||||||
|
BASE_DIR / "templates/cloudmanager/images",
|
||||||
|
BASE_DIR / "templates/cloudmanager/js"
|
||||||
|
]
|
||||||
|
|
||||||
# Default primary key field type
|
# Default primary key field type
|
||||||
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
|
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
|
||||||
@@ -129,6 +166,6 @@ CELERY_BROKER_URL = "redis://django-redis-svc:6379"
|
|||||||
CELERY_RESULT_BACKEND = "redis://django-redis-svc:6379"
|
CELERY_RESULT_BACKEND = "redis://django-redis-svc:6379"
|
||||||
|
|
||||||
CELERY_IMPORTS = [
|
CELERY_IMPORTS = [
|
||||||
'stash_management.apps', # This line imports the tasks.py file
|
'apps.stash_management.apps', # This line imports the tasks.py file
|
||||||
# Add other app tasks here if needed
|
# Add other app tasks here if needed
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -16,30 +16,35 @@ Including another URLconf
|
|||||||
"""
|
"""
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
#from docker_connection import views, apps
|
#from apps.cloudmanager import (credentials,db_interaction)
|
||||||
from random_simpsons import apps as random_simpsons
|
from apps.cloudmanager import apps as cloudmanager_apps
|
||||||
from paperless_django import apps as paperless_django
|
from apps.cloudmanager import views as cloudmanager_views
|
||||||
from onenote import apps as onenote
|
from apps.random_simpsons import apps as random_simpsons
|
||||||
from dashboard import apps as dashboardapp
|
from apps.random_simpsons import views as random_simpsons_view
|
||||||
from dashboard import views as dashboardview
|
from apps.dashboard import apps as dashboardapp
|
||||||
from kubernetes_connection import apps as kubernetes_connection
|
from apps.dashboard import views as dashboardview
|
||||||
from stash_management import apps as stashapp
|
from apps.kubernetes_connection import apps as kubernetes_connection
|
||||||
from stash_management import views as stashview
|
from apps.stash_management import apps as stashapp
|
||||||
|
from apps.stash_management import views as stashview
|
||||||
|
from apps.website_redirection import apps as website_redirectionapp
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
# path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
|
|
||||||
################### Simpsons ###################
|
################### Simpsons ###################
|
||||||
path('hello/', random_simpsons.hello),
|
path('hello/', random_simpsons.hello),
|
||||||
path('simpsons/', random_simpsons.simpsons),
|
path('simpsons/', random_simpsons.simpsons),
|
||||||
path('download_file/', random_simpsons.download_file),
|
path('download_file/', random_simpsons.download_file),
|
||||||
|
path('print/', random_simpsons_view.random_episode),
|
||||||
|
|
||||||
################### paperless ###################
|
################### Redirect ###################
|
||||||
path('paperless/hello/', paperless_django.hello),
|
path('redirect/hello/', website_redirectionapp.hello),
|
||||||
# path('simpsons/', random_simpsons.simpsons),
|
path('redirect/set/', website_redirectionapp.redirect),
|
||||||
|
path('redirect/get/<str:key>', website_redirectionapp.display_key),
|
||||||
################### onenote ###################
|
path('redirect/go/<str:key>', website_redirectionapp.redirect_to_key),
|
||||||
path('onenote/hello/', onenote.hello),
|
path('redirect/redirect-form/', website_redirectionapp.redirect_process, name='submit_form'),
|
||||||
|
path('redirect/clearkey/', website_redirectionapp.clearkey_process, name='submit_form'),
|
||||||
|
|
||||||
################### onenote ###################
|
################### onenote ###################
|
||||||
path('dashboard/hello/', dashboardapp.hello),
|
path('dashboard/hello/', dashboardapp.hello),
|
||||||
@@ -59,22 +64,31 @@ urlpatterns = [
|
|||||||
path('kubernetes_connection/scale_up/<str:namespace_name>/<str:deploy_name>', kubernetes_connection.scale_up),
|
path('kubernetes_connection/scale_up/<str:namespace_name>/<str:deploy_name>', kubernetes_connection.scale_up),
|
||||||
path('kubernetes_connection/scale_down/<str:namespace_name>/<str:deploy_name>', kubernetes_connection.scale_down),
|
path('kubernetes_connection/scale_down/<str:namespace_name>/<str:deploy_name>', kubernetes_connection.scale_down),
|
||||||
|
|
||||||
################## kubernetes_connection#####
|
################## stash#####
|
||||||
path('stash/', stashview.home),
|
path('stash/', stashview.home),
|
||||||
path('stash/hello/', stashapp.hello),
|
path('stash/hello/', stashapp.hello),
|
||||||
path('stash/form/', stashapp.form),
|
path('stash/form/', stashapp.form),
|
||||||
path('stash/incremental/', stashapp.incremental),
|
path('stash/incremental/', stashapp.incremental),
|
||||||
path('stash/album/', stashapp.album),
|
path('stash/album/', stashapp.album),
|
||||||
path('stash/album-form/', stashapp.album_form, name='submit_form'),
|
path('stash/album-form/', stashapp.album_form, name='submit_form'),
|
||||||
|
path('stash/simple/', stashapp.simple),
|
||||||
|
path('stash/simple-form/', stashapp.simple_form, name='submit_form'),
|
||||||
path('stash/submit-form/', stashapp.handle_survey_form, name='submit_form'),
|
path('stash/submit-form/', stashapp.handle_survey_form, name='submit_form'),
|
||||||
path('stash/incremental-form/', stashapp.incremental_form, name='submit_form'),
|
path('stash/incremental-form/', stashapp.incremental_form, name='submit_form'),
|
||||||
|
|
||||||
|
|
||||||
# path('bookstack/', docker_connection.apps.hello),
|
# path('bookstack/', docker_connection.apps.hello),
|
||||||
# path('test/', docker_connection.apps.http_call_test),
|
# path('test/', docker_connection.apps.http_call_test),
|
||||||
# path('proxmox/', docker_connection.apps.proxmox),
|
# path('proxmox/', docker_connection.apps.proxmox),
|
||||||
# path('simpsons/', random_simpsons.hello),
|
# path('simpsons/', random_simpsons.hello),
|
||||||
# path('docker/<str:action>/<str:id_docker>', docker_connection.apps.docker_call),
|
# path('docker/<str:action>/<str:id_docker>', docker_connection.apps.docker_call),
|
||||||
|
|
||||||
|
################### cloudmanager ###################
|
||||||
|
path('cmm/', cloudmanager_apps.redirect),
|
||||||
|
path('cmm/hello', cloudmanager_apps.hello, name='hello'),
|
||||||
|
path('cmm/coucou', cloudmanager_views.coucou, name='coucou'),
|
||||||
|
path('cmm/display', cloudmanager_views.display, name='display'),
|
||||||
|
#path('cmm/run-action/', cloudmanager_views.trigger_my_action, name='run_my_action_url'),
|
||||||
|
#path('change-schedule/', cloudmanager_views.change_schedule, name='change_schedule'),
|
||||||
|
#path('cmm/main/', db_interaction.main),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
from django.apps import AppConfig
|
|
||||||
from django.http import HttpResponse
|
|
||||||
from django.shortcuts import render
|
|
||||||
from django.shortcuts import redirect
|
|
||||||
#from django.template.loader import render_to_string
|
|
||||||
from django.template import loader
|
|
||||||
#import time
|
|
||||||
#import random
|
|
||||||
|
|
||||||
def hello(request):
|
|
||||||
# htmlContent = '
|
|
||||||
#<!DOCTYPE html>
|
|
||||||
#<html lang="en">
|
|
||||||
#<body>
|
|
||||||
#<strong>Hello World from const</strong>
|
|
||||||
#</body>
|
|
||||||
#</html>
|
|
||||||
#'
|
|
||||||
# response = "coucou"
|
|
||||||
# context = {'response': HttpResponse(response)}
|
|
||||||
# return HttpResponse(htmlContent)
|
|
||||||
# return HttpResponse('<h1>Hello onenote! <h1>')
|
|
||||||
# return render(request, 'hello.html', context)
|
|
||||||
|
|
||||||
template = loader.get_template('onenote/hello.html')
|
|
||||||
# template = loader.get_template('onenote/Roser.mht')
|
|
||||||
return HttpResponse(template.render())
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<body>
|
|
||||||
<strong>Hello World</strong>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
from django.apps import AppConfig
|
|
||||||
from django.http import HttpResponse
|
|
||||||
from django.shortcuts import render
|
|
||||||
from django.shortcuts import redirect
|
|
||||||
import time
|
|
||||||
import random
|
|
||||||
|
|
||||||
def hello(request):
|
|
||||||
return HttpResponse('<h1>Hello paperless! <h1>')
|
|
||||||
|
|
||||||
def redirect_authenticated(request):
|
|
||||||
|
|
||||||
final_url = "https://paperless.tryton.geeraert.eu/"
|
|
||||||
print(final_url)
|
|
||||||
|
|
||||||
return redirect(str(final_url))
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<h1>Hello template!</h1>
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<link rel="icon" type="image/x-icon" href="https://cdn-icons-png.flaticon.com/512/6402/6402576.png">
|
||||||
|
<title> title </title>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>namespace</th>
|
||||||
|
<th>name</th>
|
||||||
|
<th>replicas</th>
|
||||||
|
</tr>
|
||||||
|
{% block content %}
|
||||||
|
{% for machine_target in list_servers_up %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ machine_target.0 }}</td>
|
||||||
|
<td>{{ machine_target.1 }}</td>
|
||||||
|
<td>{{ machine_target.2 }}</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,294 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<title>Redirect form</title>
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto|Varela+Round">
|
||||||
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@charset "UTF-8";
|
||||||
|
.m-b-xs {
|
||||||
|
margin-bottom: 2%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.m-b-md {
|
||||||
|
margin-bottom: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.m-t-xs {
|
||||||
|
margin-top: 2%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.m-t-sm {
|
||||||
|
margin-top: 5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
outline: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
padding: 2% 0;
|
||||||
|
background-color: #37404a;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-family: "Roboto", sans-serif;
|
||||||
|
font-size: 2.2em;
|
||||||
|
font-weight: 300;
|
||||||
|
color: #85ffc7;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-family: "Roboto", sans-serif;
|
||||||
|
font-size: 1.1em;
|
||||||
|
font-weight: 300;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#survey-form label,
|
||||||
|
#survey-form .labels {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 2%;
|
||||||
|
font-family: "Roboto", sans-serif;
|
||||||
|
font-size: 1.1em;
|
||||||
|
font-weight: 300;
|
||||||
|
color: #fff;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
}
|
||||||
|
#survey-form input::-webkit-input-placeholder {
|
||||||
|
color: transparent !important;
|
||||||
|
}
|
||||||
|
#survey-form input::-moz-placeholder {
|
||||||
|
color: transparent !important;
|
||||||
|
}
|
||||||
|
#survey-form input:-ms-input-placeholder {
|
||||||
|
color: transparent !important;
|
||||||
|
}
|
||||||
|
#survey-form input:-moz-placeholder {
|
||||||
|
color: transparent !important;
|
||||||
|
}
|
||||||
|
#survey-form input,
|
||||||
|
#survey-form select {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
outline: none;
|
||||||
|
border: 2px solid #333;
|
||||||
|
}
|
||||||
|
#survey-form input {
|
||||||
|
margin-top: 1.5%;
|
||||||
|
padding: 0 0 5px 0;
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
border-bottom: 2px solid #fff;
|
||||||
|
font-size: 1.1em;
|
||||||
|
font-weight: 300;
|
||||||
|
color: #85ffc7;
|
||||||
|
}
|
||||||
|
#survey-form input:focus {
|
||||||
|
border-color: #85ffc7;
|
||||||
|
}
|
||||||
|
#survey-form [type=checkbox],
|
||||||
|
#survey-form [type=radio] {
|
||||||
|
display: inline-block;
|
||||||
|
width: auto;
|
||||||
|
margin: 0px 10px 0 0;
|
||||||
|
}
|
||||||
|
#survey-form [type=checkbox],
|
||||||
|
#survey-form [type=radio] {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0 10px 0 0 !important;
|
||||||
|
position: relative;
|
||||||
|
top: 5px;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
-o-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
height: 23px;
|
||||||
|
width: 23px;
|
||||||
|
transition: all 0.15s ease-out 0s;
|
||||||
|
background: #37404a;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
outline: none;
|
||||||
|
z-index: 1000;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
}
|
||||||
|
#survey-form [type=checkbox]:hover,
|
||||||
|
#survey-form [type=radio]:hover {
|
||||||
|
border-color: #85ffc7;
|
||||||
|
}
|
||||||
|
#survey-form [type=checkbox]:checked:before,
|
||||||
|
#survey-form [type=radio]:checked:before {
|
||||||
|
display: inline-block;
|
||||||
|
height: 21px;
|
||||||
|
width: 21px;
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
content: "";
|
||||||
|
text-align: center;
|
||||||
|
font-family: "Glyphicons Halflings";
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 15px;
|
||||||
|
color: #85ffc7;
|
||||||
|
}
|
||||||
|
#survey-form [type=checkbox]:focus,
|
||||||
|
#survey-form [type=radio]:focus {
|
||||||
|
outline: none;
|
||||||
|
border-color: #fff;
|
||||||
|
}
|
||||||
|
#survey-form [type=radio] {
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
#survey-form [type=radio]:after {
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
#survey-form [type=number] {
|
||||||
|
width: 45px;
|
||||||
|
}
|
||||||
|
#survey-form [type=number]::-webkit-inner-spin-button, #survey-form [type=number]::-webkit-outer-spin-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
#survey-form select {
|
||||||
|
height: 40px;
|
||||||
|
padding-left: 5px;
|
||||||
|
background-color: #37404a;
|
||||||
|
border: 2px solid #fff;
|
||||||
|
color: #85ffc7;
|
||||||
|
}
|
||||||
|
#survey-form select option {
|
||||||
|
padding: 5px 10px;
|
||||||
|
font-weight: 300;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
#survey-form select option:hover {
|
||||||
|
background-color: #85ffc7;
|
||||||
|
}
|
||||||
|
#survey-form textarea {
|
||||||
|
resize: none;
|
||||||
|
margin-top: 2%;
|
||||||
|
padding: 10px 10px 0px 20px;
|
||||||
|
width: 100%;
|
||||||
|
height: 90px;
|
||||||
|
color: #85ffc7;
|
||||||
|
background-color: #37404a;
|
||||||
|
border: 2px solid #fff;
|
||||||
|
}
|
||||||
|
#survey-form .btn {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
margin: 3% 0 0 0;
|
||||||
|
height: 45px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
border: 3px solid #85ffc7;
|
||||||
|
border-radius: 0;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 1.2em;
|
||||||
|
color: #85ffc7;
|
||||||
|
text-align: center;
|
||||||
|
background: none;
|
||||||
|
transition: color 0.25s ease;
|
||||||
|
}
|
||||||
|
#survey-form .btn:after {
|
||||||
|
position: absolute;
|
||||||
|
content: "";
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 0;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #85ffc7;
|
||||||
|
transform-origin: left;
|
||||||
|
transition: width 0.5s ease;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
#survey-form .btn:hover {
|
||||||
|
color: #37404a;
|
||||||
|
}
|
||||||
|
#survey-form .btn:hover:after {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
#survey-form fieldset {
|
||||||
|
margin: 5% 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copyright {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.copyright i {
|
||||||
|
color: #ef5350;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 600px) {
|
||||||
|
body {
|
||||||
|
padding: 8% 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<main id="main" class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-lg-offset-3 col-lg-6">
|
||||||
|
<div class="m-b-md text-center">
|
||||||
|
<h1 id="title">Redirect Form</h1>
|
||||||
|
<p id="description" class="description" class="text-center">Download form</p>
|
||||||
|
</div>
|
||||||
|
<form method="GET" action="/redirect-form/" id="survey-form" name="survey-form">
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<label for="key" id="key-label">
|
||||||
|
Key *
|
||||||
|
<input class="" type="text" id="key" name="key" placeholder="Enter your key (required)" required />
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<label for="value" id="value-label">
|
||||||
|
Value *
|
||||||
|
<input class="" type="value" id="value" name="value" placeholder="Enter the value (required)" />
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<button id="submit" type="submit" class="btn">Submit the form</button>
|
||||||
|
<button id="clearkey" type="submit" formaction="/clearkey/" class="btn">Clear the key</button>
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<button type="button" onclick="location.href='/go/streaming'" class="btn">Streaming</button>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<button type="button" onclick="location.href='/go/streaming-sam'" class="btn">Streaming Sam</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</html>
|
||||||
+2744
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,407 @@
|
|||||||
|
/* Blue Version CSS */
|
||||||
|
|
||||||
|
a:link, a:visited, a:hover, a:focus{text-decoration: none; color: #00cfef;}
|
||||||
|
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 strong{
|
||||||
|
color:#00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control:hover,
|
||||||
|
.right-control:hover {
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.learn-more {
|
||||||
|
border: 2px solid #00cfef;
|
||||||
|
}
|
||||||
|
.learn-more:hover {
|
||||||
|
background: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control, .right-control {
|
||||||
|
border:1px solid #00cfef;
|
||||||
|
}
|
||||||
|
/* End Home Slider */
|
||||||
|
|
||||||
|
|
||||||
|
/* Navbar */
|
||||||
|
|
||||||
|
/* Link Color */
|
||||||
|
.navbar-inverse { border-color: #00cfef}
|
||||||
|
.navbar-inverse .navbar-nav>li>a:hover, .navbar-inverse .navbar-nav>li>a:focus { color: #00cfef}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus { color: #00cfef}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus { color: #00cfef}
|
||||||
|
.dropdown-menu>li>a { color: #00cfef}
|
||||||
|
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret { border-top-color: #00cfef}
|
||||||
|
|
||||||
|
.navbar-toggle {
|
||||||
|
border: transparent;
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inverse .navbar-toggle:hover,
|
||||||
|
.navbar-inverse .navbar-toggle:focus {
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Navbar */
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
.spinner > div
|
||||||
|
{
|
||||||
|
background: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Loader*/
|
||||||
|
|
||||||
|
/* Titles & Color */
|
||||||
|
.section-title h1 span{
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #00cfef;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover{
|
||||||
|
color: #fff;
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover a{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover a{
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse {
|
||||||
|
color: #00cfef;
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse{
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse a{
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a:hover {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one{
|
||||||
|
background: none repeat scroll 0 0 #00cfef;
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one:hover {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
color: #00cfef;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1 {
|
||||||
|
background: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1:after {
|
||||||
|
box-shadow: 0 0 0 4px #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-color {
|
||||||
|
background: none repeat scroll 0 0 #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps-negative {
|
||||||
|
background: none repeat scroll 0 0 #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blockqoute-style-2 {
|
||||||
|
border-left: 5px solid #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
cite {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Effect 1a */
|
||||||
|
.hovicon.effect-1.sub-a:hover {
|
||||||
|
background: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-color
|
||||||
|
{
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-color
|
||||||
|
{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Titles & Color */
|
||||||
|
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.number p:first-letter {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Facts */
|
||||||
|
|
||||||
|
/* Team Member */
|
||||||
|
.team-member-holder:hover {
|
||||||
|
border-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-overlay {
|
||||||
|
background: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-profile {
|
||||||
|
color:#00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-social-list-item {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-details h3{
|
||||||
|
color: #00cdef;
|
||||||
|
}
|
||||||
|
/* End Team Member */
|
||||||
|
|
||||||
|
/* Skills */
|
||||||
|
.skills h4:first-letter {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Skills */
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
#filters li span.active,#filters li span:hover {
|
||||||
|
background: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filters li span {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-details h3 {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-description h3 {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Works */
|
||||||
|
|
||||||
|
/* Partners */
|
||||||
|
.partners-img:hover img{
|
||||||
|
border-color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Partners */
|
||||||
|
|
||||||
|
/* Pricing */
|
||||||
|
.single-table h4:first-letter {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.price {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price, .sign_form input[type="submit"] {
|
||||||
|
background: none repeat scroll 0 0 #00cfef;
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price:hover {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price-icon, .single-table.featured .btn-price {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured{
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price {
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Pricing */
|
||||||
|
|
||||||
|
/* Clients */
|
||||||
|
.clients h5 {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators .active {
|
||||||
|
background-color: #00cfef;
|
||||||
|
border-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators li {
|
||||||
|
border-color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Clients */
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date {
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a:hover {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End News */
|
||||||
|
|
||||||
|
/* Blog */
|
||||||
|
.widget.tags-cloud a {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget.tags-cloud a:hover {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a:hover {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pager li > a, .pager li > span {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
}
|
||||||
|
.pager li > a:hover, .pager li > a:focus {
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Blog */
|
||||||
|
|
||||||
|
|
||||||
|
/* Tweet */
|
||||||
|
#twitter-carousel .item a {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter:after {
|
||||||
|
border-color: #00cfef transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter, .twitter-left-control:hover, .twitter-right-control:hover {
|
||||||
|
background-color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Tweet */
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.bottom-footer {
|
||||||
|
border-top: 7px solid #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-footer-left p a {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i{
|
||||||
|
background-color: #00cfef;
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i:hover{
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Footer */
|
||||||
|
|
||||||
|
/* Contacts */
|
||||||
|
.contact_form i{
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"] {
|
||||||
|
background: #00cfef;
|
||||||
|
border: 1px solid #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"]:hover {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_form input[type="submit"]:hover {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End Contacts */
|
||||||
|
|
||||||
|
/* To Top */
|
||||||
|
a.scroll-up {
|
||||||
|
background: none repeat scroll 0 0 #00cfef;
|
||||||
|
}
|
||||||
|
a.scroll-up i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover i {
|
||||||
|
color: #00cfef;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover {
|
||||||
|
color: #00cfef;
|
||||||
|
border-color: #00cfef;
|
||||||
|
}
|
||||||
|
/* End To Top */
|
||||||
@@ -0,0 +1,470 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap v3.3.1 (http://getbootstrap.com)
|
||||||
|
* Copyright 2011-2014 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
|
||||||
|
.btn-default,
|
||||||
|
.btn-primary,
|
||||||
|
.btn-success,
|
||||||
|
.btn-info,
|
||||||
|
.btn-warning,
|
||||||
|
.btn-danger {
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
|
||||||
|
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.btn-default:active,
|
||||||
|
.btn-primary:active,
|
||||||
|
.btn-success:active,
|
||||||
|
.btn-info:active,
|
||||||
|
.btn-warning:active,
|
||||||
|
.btn-danger:active,
|
||||||
|
.btn-default.active,
|
||||||
|
.btn-primary.active,
|
||||||
|
.btn-success.active,
|
||||||
|
.btn-info.active,
|
||||||
|
.btn-warning.active,
|
||||||
|
.btn-danger.active {
|
||||||
|
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
||||||
|
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
||||||
|
}
|
||||||
|
.btn-default .badge,
|
||||||
|
.btn-primary .badge,
|
||||||
|
.btn-success .badge,
|
||||||
|
.btn-info .badge,
|
||||||
|
.btn-warning .badge,
|
||||||
|
.btn-danger .badge {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.btn:active,
|
||||||
|
.btn.active {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-default {
|
||||||
|
text-shadow: 0 1px 0 #fff;
|
||||||
|
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
|
||||||
|
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #dbdbdb;
|
||||||
|
border-color: #ccc;
|
||||||
|
}
|
||||||
|
.btn-default:hover,
|
||||||
|
.btn-default:focus {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-default:active,
|
||||||
|
.btn-default.active {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
border-color: #dbdbdb;
|
||||||
|
}
|
||||||
|
.btn-default:disabled,
|
||||||
|
.btn-default[disabled] {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-primary {
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #245580;
|
||||||
|
}
|
||||||
|
.btn-primary:hover,
|
||||||
|
.btn-primary:focus {
|
||||||
|
background-color: #265a88;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-primary:active,
|
||||||
|
.btn-primary.active {
|
||||||
|
background-color: #265a88;
|
||||||
|
border-color: #245580;
|
||||||
|
}
|
||||||
|
.btn-primary:disabled,
|
||||||
|
.btn-primary[disabled] {
|
||||||
|
background-color: #265a88;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-success {
|
||||||
|
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
|
||||||
|
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #3e8f3e;
|
||||||
|
}
|
||||||
|
.btn-success:hover,
|
||||||
|
.btn-success:focus {
|
||||||
|
background-color: #419641;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-success:active,
|
||||||
|
.btn-success.active {
|
||||||
|
background-color: #419641;
|
||||||
|
border-color: #3e8f3e;
|
||||||
|
}
|
||||||
|
.btn-success:disabled,
|
||||||
|
.btn-success[disabled] {
|
||||||
|
background-color: #419641;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-info {
|
||||||
|
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
|
||||||
|
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #28a4c9;
|
||||||
|
}
|
||||||
|
.btn-info:hover,
|
||||||
|
.btn-info:focus {
|
||||||
|
background-color: #2aabd2;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-info:active,
|
||||||
|
.btn-info.active {
|
||||||
|
background-color: #2aabd2;
|
||||||
|
border-color: #28a4c9;
|
||||||
|
}
|
||||||
|
.btn-info:disabled,
|
||||||
|
.btn-info[disabled] {
|
||||||
|
background-color: #2aabd2;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-warning {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
|
||||||
|
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #e38d13;
|
||||||
|
}
|
||||||
|
.btn-warning:hover,
|
||||||
|
.btn-warning:focus {
|
||||||
|
background-color: #eb9316;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-warning:active,
|
||||||
|
.btn-warning.active {
|
||||||
|
background-color: #eb9316;
|
||||||
|
border-color: #e38d13;
|
||||||
|
}
|
||||||
|
.btn-warning:disabled,
|
||||||
|
.btn-warning[disabled] {
|
||||||
|
background-color: #eb9316;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-danger {
|
||||||
|
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
|
||||||
|
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #b92c28;
|
||||||
|
}
|
||||||
|
.btn-danger:hover,
|
||||||
|
.btn-danger:focus {
|
||||||
|
background-color: #c12e2a;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-danger:active,
|
||||||
|
.btn-danger.active {
|
||||||
|
background-color: #c12e2a;
|
||||||
|
border-color: #b92c28;
|
||||||
|
}
|
||||||
|
.btn-danger:disabled,
|
||||||
|
.btn-danger[disabled] {
|
||||||
|
background-color: #c12e2a;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.thumbnail,
|
||||||
|
.img-thumbnail {
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.dropdown-menu > li > a:hover,
|
||||||
|
.dropdown-menu > li > a:focus {
|
||||||
|
background-color: #e8e8e8;
|
||||||
|
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
|
||||||
|
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.dropdown-menu > .active > a,
|
||||||
|
.dropdown-menu > .active > a:hover,
|
||||||
|
.dropdown-menu > .active > a:focus {
|
||||||
|
background-color: #2e6da4;
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.navbar-default {
|
||||||
|
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
|
||||||
|
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-radius: 4px;
|
||||||
|
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.navbar-default .navbar-nav > .open > a,
|
||||||
|
.navbar-default .navbar-nav > .active > a {
|
||||||
|
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
|
||||||
|
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.navbar-brand,
|
||||||
|
.navbar-nav > li > a {
|
||||||
|
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
|
||||||
|
}
|
||||||
|
.navbar-inverse {
|
||||||
|
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
|
||||||
|
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.navbar-inverse .navbar-nav > .open > a,
|
||||||
|
.navbar-inverse .navbar-nav > .active > a {
|
||||||
|
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
|
||||||
|
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
|
||||||
|
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
.navbar-inverse .navbar-brand,
|
||||||
|
.navbar-inverse .navbar-nav > li > a {
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
.navbar-static-top,
|
||||||
|
.navbar-fixed-top,
|
||||||
|
.navbar-fixed-bottom {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
.navbar .navbar-nav .open .dropdown-menu > .active > a,
|
||||||
|
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
|
||||||
|
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
|
||||||
|
color: #fff;
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.alert {
|
||||||
|
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
|
||||||
|
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
||||||
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
||||||
|
}
|
||||||
|
.alert-success {
|
||||||
|
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
|
||||||
|
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #b2dba1;
|
||||||
|
}
|
||||||
|
.alert-info {
|
||||||
|
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
|
||||||
|
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #9acfea;
|
||||||
|
}
|
||||||
|
.alert-warning {
|
||||||
|
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
|
||||||
|
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #f5e79e;
|
||||||
|
}
|
||||||
|
.alert-danger {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
|
||||||
|
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #dca7a7;
|
||||||
|
}
|
||||||
|
.progress {
|
||||||
|
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
|
||||||
|
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar {
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-success {
|
||||||
|
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
|
||||||
|
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-info {
|
||||||
|
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
|
||||||
|
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-warning {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
|
||||||
|
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-danger {
|
||||||
|
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
|
||||||
|
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-striped {
|
||||||
|
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||||
|
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||||
|
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||||
|
}
|
||||||
|
.list-group {
|
||||||
|
border-radius: 4px;
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.list-group-item.active,
|
||||||
|
.list-group-item.active:hover,
|
||||||
|
.list-group-item.active:focus {
|
||||||
|
text-shadow: 0 -1px 0 #286090;
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #2b669a;
|
||||||
|
}
|
||||||
|
.list-group-item.active .badge,
|
||||||
|
.list-group-item.active:hover .badge,
|
||||||
|
.list-group-item.active:focus .badge {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.panel {
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||||
|
}
|
||||||
|
.panel-default > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
|
||||||
|
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-primary > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-success > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
|
||||||
|
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-info > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
|
||||||
|
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-warning > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
|
||||||
|
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-danger > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
|
||||||
|
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.well {
|
||||||
|
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
|
||||||
|
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #dcdcdc;
|
||||||
|
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
|
||||||
|
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
|
||||||
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap-theme.css.map */
|
||||||
File diff suppressed because one or more lines are too long
+6332
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+2337
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,410 @@
|
|||||||
|
/* Golden Version CSS */
|
||||||
|
|
||||||
|
a:link, a:visited, a:hover, a:focus{text-decoration: none; color: #C0A777;}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
background: url("../../images/logo-white8.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 strong{
|
||||||
|
color:#C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control:hover,
|
||||||
|
.right-control:hover {
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.learn-more {
|
||||||
|
border: 2px solid #C0A777;
|
||||||
|
}
|
||||||
|
.learn-more:hover {
|
||||||
|
background: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control, .right-control {
|
||||||
|
border:1px solid #C0A777;
|
||||||
|
}
|
||||||
|
/* End Home Slider */
|
||||||
|
|
||||||
|
|
||||||
|
/* Navbar */
|
||||||
|
|
||||||
|
/* Link Color */
|
||||||
|
.navbar-inverse { border-color: #C0A777}
|
||||||
|
.navbar-inverse .navbar-nav>li>a:hover, .navbar-inverse .navbar-nav>li>a:focus { color: #C0A777}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus { color: #C0A777}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus { color: #C0A777}
|
||||||
|
.dropdown-menu>li>a { color: #C0A777}
|
||||||
|
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret { border-top-color: #C0A777}
|
||||||
|
|
||||||
|
.navbar-toggle {
|
||||||
|
border: transparent;
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inverse .navbar-toggle:hover,
|
||||||
|
.navbar-inverse .navbar-toggle:focus {
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Navbar */
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
.spinner > div
|
||||||
|
{
|
||||||
|
background: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Loader */
|
||||||
|
|
||||||
|
/* Titles & Color */
|
||||||
|
.section-title h1 span{
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #C0A777;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover{
|
||||||
|
color: #fff;
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover a{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover a{
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse {
|
||||||
|
color: #C0A777;
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse{
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse a{
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a:hover {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one{
|
||||||
|
background: none repeat scroll 0 0 #C0A777;
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one:hover {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
color: #C0A777;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1 {
|
||||||
|
background: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1:after {
|
||||||
|
box-shadow: 0 0 0 4px #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-color {
|
||||||
|
background: none repeat scroll 0 0 #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps-negative {
|
||||||
|
background: none repeat scroll 0 0 #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blockqoute-style-2 {
|
||||||
|
border-left: 5px solid #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
cite {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Effect 1a */
|
||||||
|
.hovicon.effect-1.sub-a:hover {
|
||||||
|
background: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-color
|
||||||
|
{
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-color
|
||||||
|
{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Titles & Color */
|
||||||
|
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.number p:first-letter {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Facts */
|
||||||
|
|
||||||
|
/* Team Member */
|
||||||
|
.team-member-holder:hover {
|
||||||
|
border-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-overlay {
|
||||||
|
background: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-profile {
|
||||||
|
color:#C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-social-list-item {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-details h3{
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Team Member */
|
||||||
|
|
||||||
|
/* Skills */
|
||||||
|
.skills h4:first-letter {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Skills */
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
#filters li span.active,#filters li span:hover {
|
||||||
|
background: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filters li span {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-details h3 {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-description h3 {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Works */
|
||||||
|
|
||||||
|
/* Partners */
|
||||||
|
.partners-img:hover img{
|
||||||
|
border-color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Partners */
|
||||||
|
|
||||||
|
/* Pricing */
|
||||||
|
.single-table h4:first-letter {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.price {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price, .sign_form input[type="submit"] {
|
||||||
|
background: none repeat scroll 0 0 #C0A777;
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price:hover {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price-icon, .single-table.featured .btn-price {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured{
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price {
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Pricing */
|
||||||
|
|
||||||
|
/* Clients */
|
||||||
|
.clients h5 {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators .active {
|
||||||
|
background-color: #C0A777;
|
||||||
|
border-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators li {
|
||||||
|
border-color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Clients */
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date {
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a:hover {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End News */
|
||||||
|
|
||||||
|
/* Blog */
|
||||||
|
.widget.tags-cloud a {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget.tags-cloud a:hover {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a:hover {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pager li > a, .pager li > span {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
}
|
||||||
|
.pager li > a:hover, .pager li > a:focus {
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Blog */
|
||||||
|
|
||||||
|
|
||||||
|
/* Tweet */
|
||||||
|
#twitter-carousel .item a {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter:after {
|
||||||
|
border-color: #C0A777 transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter, .twitter-left-control:hover, .twitter-right-control:hover {
|
||||||
|
background-color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Tweet */
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.bottom-footer {
|
||||||
|
border-top: 7px solid #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-footer-left p a {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i{
|
||||||
|
background-color: #C0A777;
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i:hover{
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Footer */
|
||||||
|
|
||||||
|
/* Contacts */
|
||||||
|
.contact_form i{
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"] {
|
||||||
|
background: #C0A777;
|
||||||
|
border: 1px solid #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"]:hover {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_form input[type="submit"]:hover {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End Contacts */
|
||||||
|
|
||||||
|
/* To Top */
|
||||||
|
a.scroll-up {
|
||||||
|
background: none repeat scroll 0 0 #C0A777;
|
||||||
|
}
|
||||||
|
a.scroll-up i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover i {
|
||||||
|
color: #C0A777;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover {
|
||||||
|
color: #C0A777;
|
||||||
|
border-color: #C0A777;
|
||||||
|
}
|
||||||
|
/* End To Top */
|
||||||
@@ -0,0 +1,410 @@
|
|||||||
|
/* Green Version CSS */
|
||||||
|
|
||||||
|
a:link, a:visited, a:hover, a:focus{text-decoration: none; color: #2BBF6A;}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
background: url("../../images/logo-white3.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 strong{
|
||||||
|
color:#2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control:hover,
|
||||||
|
.right-control:hover {
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.learn-more {
|
||||||
|
border: 2px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
.learn-more:hover {
|
||||||
|
background: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control, .right-control {
|
||||||
|
border:1px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Home Slider */
|
||||||
|
|
||||||
|
|
||||||
|
/* Navbar */
|
||||||
|
|
||||||
|
/* Link Color */
|
||||||
|
.navbar-inverse { border-color: #2BBF6A}
|
||||||
|
.navbar-inverse .navbar-nav>li>a:hover, .navbar-inverse .navbar-nav>li>a:focus { color: #2BBF6A}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus { color: #2BBF6A}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus { color: #2BBF6A}
|
||||||
|
.dropdown-menu>li>a { color: #2BBF6A}
|
||||||
|
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret { border-top-color: #2BBF6A}
|
||||||
|
|
||||||
|
.navbar-toggle {
|
||||||
|
border: transparent;
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inverse .navbar-toggle:hover,
|
||||||
|
.navbar-inverse .navbar-toggle:focus {
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Navbar */
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
.spinner > div
|
||||||
|
{
|
||||||
|
background: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Loader*/
|
||||||
|
|
||||||
|
/* Titles & Color */
|
||||||
|
.section-title h1 span{
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover{
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover a{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover a{
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse {
|
||||||
|
color: #2BBF6A;
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse{
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse a{
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a:hover {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one{
|
||||||
|
background: none repeat scroll 0 0 #2BBF6A;
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one:hover {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
color: #2BBF6A;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1 {
|
||||||
|
background: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1:after {
|
||||||
|
box-shadow: 0 0 0 4px #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-color {
|
||||||
|
background: none repeat scroll 0 0 #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps-negative {
|
||||||
|
background: none repeat scroll 0 0 #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blockqoute-style-2 {
|
||||||
|
border-left: 5px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
cite {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Effect 1a */
|
||||||
|
.hovicon.effect-1.sub-a:hover {
|
||||||
|
background: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-color
|
||||||
|
{
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-color
|
||||||
|
{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Titles & Color */
|
||||||
|
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.number p:first-letter {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Facts */
|
||||||
|
|
||||||
|
/* Team Member */
|
||||||
|
.team-member-holder:hover {
|
||||||
|
border-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-overlay {
|
||||||
|
background: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-profile {
|
||||||
|
color:#2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-social-list-item {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-details h3{
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Team Member */
|
||||||
|
|
||||||
|
/* Skills */
|
||||||
|
.skills h4:first-letter {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Skills */
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
#filters li span.active,#filters li span:hover {
|
||||||
|
background: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filters li span {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-details h3 {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-description h3 {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Works */
|
||||||
|
|
||||||
|
/* Partners */
|
||||||
|
.partners-img:hover img{
|
||||||
|
border-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Partners */
|
||||||
|
|
||||||
|
/* Pricing */
|
||||||
|
.single-table h4:first-letter {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.price {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price, .sign_form input[type="submit"] {
|
||||||
|
background: none repeat scroll 0 0 #2BBF6A;
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price:hover {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price-icon, .single-table.featured .btn-price {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured{
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price {
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Pricing */
|
||||||
|
|
||||||
|
/* Clients */
|
||||||
|
.clients h5 {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators .active {
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
border-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators li {
|
||||||
|
border-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Clients */
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date {
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a:hover {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End News */
|
||||||
|
|
||||||
|
/* Blog */
|
||||||
|
.widget.tags-cloud a {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget.tags-cloud a:hover {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a:hover {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pager li > a, .pager li > span {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
.pager li > a:hover, .pager li > a:focus {
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Blog */
|
||||||
|
|
||||||
|
|
||||||
|
/* Tweet */
|
||||||
|
#twitter-carousel .item a {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter:after {
|
||||||
|
border-color: #2BBF6A transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter, .twitter-left-control:hover, .twitter-right-control:hover {
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Tweet */
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.bottom-footer {
|
||||||
|
border-top: 7px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-footer-left p a {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i{
|
||||||
|
background-color: #2BBF6A;
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i:hover{
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Footer */
|
||||||
|
|
||||||
|
/* Contacts */
|
||||||
|
.contact_form i{
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"] {
|
||||||
|
background: #2BBF6A;
|
||||||
|
border: 1px solid #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"]:hover {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_form input[type="submit"]:hover {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End Contacts */
|
||||||
|
|
||||||
|
/* To Top */
|
||||||
|
a.scroll-up {
|
||||||
|
background: none repeat scroll 0 0 #2BBF6A;
|
||||||
|
}
|
||||||
|
a.scroll-up i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover i {
|
||||||
|
color: #2BBF6A;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover {
|
||||||
|
color: #2BBF6A;
|
||||||
|
border-color: #2BBF6A;
|
||||||
|
}
|
||||||
|
/* End To Top */
|
||||||
@@ -0,0 +1,410 @@
|
|||||||
|
/* Magenta Version CSS */
|
||||||
|
|
||||||
|
a:link, a:visited, a:hover, a:focus{text-decoration: none; color: #ec008c;}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
background: url("../../images/logo-white6.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 strong{
|
||||||
|
color:#ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control:hover,
|
||||||
|
.right-control:hover {
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.learn-more {
|
||||||
|
border: 2px solid #ec008c;
|
||||||
|
}
|
||||||
|
.learn-more:hover {
|
||||||
|
background: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control, .right-control {
|
||||||
|
border:1px solid #ec008c;
|
||||||
|
}
|
||||||
|
/* End Home Slider */
|
||||||
|
|
||||||
|
|
||||||
|
/* Navbar */
|
||||||
|
|
||||||
|
/* Link Color */
|
||||||
|
.navbar-inverse { border-color: #ec008c}
|
||||||
|
.navbar-inverse .navbar-nav>li>a:hover, .navbar-inverse .navbar-nav>li>a:focus { color: #ec008c}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus { color: #ec008c}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus { color: #ec008c}
|
||||||
|
.dropdown-menu>li>a { color: #ec008c}
|
||||||
|
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret { border-top-color: #ec008c}
|
||||||
|
|
||||||
|
.navbar-toggle {
|
||||||
|
border: transparent;
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inverse .navbar-toggle:hover,
|
||||||
|
.navbar-inverse .navbar-toggle:focus {
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Navbar */
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
.spinner > div
|
||||||
|
{
|
||||||
|
background: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Loader*/
|
||||||
|
|
||||||
|
/* Titles & Color */
|
||||||
|
.section-title h1 span{
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #ec008c;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover{
|
||||||
|
color: #fff;
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover a{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover a{
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse {
|
||||||
|
color: #ec008c;
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse{
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse a{
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a:hover {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one{
|
||||||
|
background: none repeat scroll 0 0 #ec008c;
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one:hover {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
color: #ec008c;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1 {
|
||||||
|
background: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1:after {
|
||||||
|
box-shadow: 0 0 0 4px #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-color {
|
||||||
|
background: none repeat scroll 0 0 #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps-negative {
|
||||||
|
background: none repeat scroll 0 0 #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blockqoute-style-2 {
|
||||||
|
border-left: 5px solid #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
cite {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Effect 1a */
|
||||||
|
.hovicon.effect-1.sub-a:hover {
|
||||||
|
background: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-color
|
||||||
|
{
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-color
|
||||||
|
{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Titles & Color */
|
||||||
|
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.number p:first-letter {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Facts */
|
||||||
|
|
||||||
|
/* Team Member */
|
||||||
|
.team-member-holder:hover {
|
||||||
|
border-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-overlay {
|
||||||
|
background: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-profile {
|
||||||
|
color:#ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-social-list-item {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-details h3{
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Team Member */
|
||||||
|
|
||||||
|
/* Skills */
|
||||||
|
.skills h4:first-letter {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Skills */
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
#filters li span.active,#filters li span:hover {
|
||||||
|
background: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filters li span {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-details h3 {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-description h3 {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Works */
|
||||||
|
|
||||||
|
/* Partners */
|
||||||
|
.partners-img:hover img{
|
||||||
|
border-color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Partners */
|
||||||
|
|
||||||
|
/* Pricing */
|
||||||
|
.single-table h4:first-letter {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.price {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price, .sign_form input[type="submit"] {
|
||||||
|
background: none repeat scroll 0 0 #ec008c;
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price:hover {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price-icon, .single-table.featured .btn-price {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured{
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price {
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Pricing */
|
||||||
|
|
||||||
|
/* Clients */
|
||||||
|
.clients h5 {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators .active {
|
||||||
|
background-color: #ec008c;
|
||||||
|
border-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators li {
|
||||||
|
border-color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Clients */
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date {
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a:hover {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End News */
|
||||||
|
|
||||||
|
/* Blog */
|
||||||
|
.widget.tags-cloud a {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget.tags-cloud a:hover {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a:hover {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pager li > a, .pager li > span {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
}
|
||||||
|
.pager li > a:hover, .pager li > a:focus {
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Blog */
|
||||||
|
|
||||||
|
|
||||||
|
/* Tweet */
|
||||||
|
#twitter-carousel .item a {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter:after {
|
||||||
|
border-color: #ec008c transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter, .twitter-left-control:hover, .twitter-right-control:hover {
|
||||||
|
background-color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Tweet */
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.bottom-footer {
|
||||||
|
border-top: 7px solid #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-footer-left p a {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i{
|
||||||
|
background-color: #ec008c;
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i:hover{
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Footer */
|
||||||
|
|
||||||
|
/* Contacts */
|
||||||
|
.contact_form i{
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"] {
|
||||||
|
background: #ec008c;
|
||||||
|
border: 1px solid #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"]:hover {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_form input[type="submit"]:hover {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End Contacts */
|
||||||
|
|
||||||
|
/* To Top */
|
||||||
|
a.scroll-up {
|
||||||
|
background: none repeat scroll 0 0 #ec008c;
|
||||||
|
}
|
||||||
|
a.scroll-up i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover i {
|
||||||
|
color: #ec008c;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover {
|
||||||
|
color: #ec008c;
|
||||||
|
border-color: #ec008c;
|
||||||
|
}
|
||||||
|
/* End To Top */
|
||||||
@@ -0,0 +1,410 @@
|
|||||||
|
/* Orange Version CSS */
|
||||||
|
|
||||||
|
a:link, a:visited, a:hover, a:focus{text-decoration: none; color: #ff6600;}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
background: url("../../images/logo-white4.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 strong{
|
||||||
|
color:#ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control:hover,
|
||||||
|
.right-control:hover {
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.learn-more {
|
||||||
|
border: 2px solid #ff6600;
|
||||||
|
}
|
||||||
|
.learn-more:hover {
|
||||||
|
background: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control, .right-control {
|
||||||
|
border:1px solid #ff6600;
|
||||||
|
}
|
||||||
|
/* End Home Slider */
|
||||||
|
|
||||||
|
|
||||||
|
/* Navbar */
|
||||||
|
|
||||||
|
/* Link Color */
|
||||||
|
.navbar-inverse { border-color: #ff6600}
|
||||||
|
.navbar-inverse .navbar-nav>li>a:hover, .navbar-inverse .navbar-nav>li>a:focus { color: #ff6600}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus { color: #ff6600}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus { color: #ff6600}
|
||||||
|
.dropdown-menu>li>a { color: #ff6600}
|
||||||
|
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret { border-top-color: #ff6600}
|
||||||
|
|
||||||
|
.navbar-toggle {
|
||||||
|
border: transparent;
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inverse .navbar-toggle:hover,
|
||||||
|
.navbar-inverse .navbar-toggle:focus {
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Navbar */
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
.spinner > div
|
||||||
|
{
|
||||||
|
background: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Loader */
|
||||||
|
|
||||||
|
/* Titles & Color */
|
||||||
|
.section-title h1 span{
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #ff6600;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover{
|
||||||
|
color: #fff;
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover a{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover a{
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse {
|
||||||
|
color: #ff6600;
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse{
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse a{
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a:hover {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one{
|
||||||
|
background: none repeat scroll 0 0 #ff6600;
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one:hover {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
color: #ff6600;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1 {
|
||||||
|
background: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1:after {
|
||||||
|
box-shadow: 0 0 0 4px #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-color {
|
||||||
|
background: none repeat scroll 0 0 #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps-negative {
|
||||||
|
background: none repeat scroll 0 0 #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blockqoute-style-2 {
|
||||||
|
border-left: 5px solid #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
cite {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Effect 1a */
|
||||||
|
.hovicon.effect-1.sub-a:hover {
|
||||||
|
background: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-color
|
||||||
|
{
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-color
|
||||||
|
{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Titles & Color */
|
||||||
|
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.number p:first-letter {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Facts */
|
||||||
|
|
||||||
|
/* Team Member */
|
||||||
|
.team-member-holder:hover {
|
||||||
|
border-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-overlay {
|
||||||
|
background: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-profile {
|
||||||
|
color:#ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-social-list-item {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-details h3{
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Team Member */
|
||||||
|
|
||||||
|
/* Skills */
|
||||||
|
.skills h4:first-letter {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Skills */
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
#filters li span.active,#filters li span:hover {
|
||||||
|
background: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filters li span {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-details h3 {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-description h3 {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Works */
|
||||||
|
|
||||||
|
/* Partners */
|
||||||
|
.partners-img:hover img{
|
||||||
|
border-color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Partners */
|
||||||
|
|
||||||
|
/* Pricing */
|
||||||
|
.single-table h4:first-letter {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.price {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price, .sign_form input[type="submit"] {
|
||||||
|
background: none repeat scroll 0 0 #ff6600;
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price:hover {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price-icon, .single-table.featured .btn-price {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured{
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price {
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Pricing */
|
||||||
|
|
||||||
|
/* Clients */
|
||||||
|
.clients h5 {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators .active {
|
||||||
|
background-color: #ff6600;
|
||||||
|
border-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators li {
|
||||||
|
border-color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Clients */
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date {
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a:hover {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End News */
|
||||||
|
|
||||||
|
/* Blog */
|
||||||
|
.widget.tags-cloud a {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget.tags-cloud a:hover {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a:hover {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pager li > a, .pager li > span {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
}
|
||||||
|
.pager li > a:hover, .pager li > a:focus {
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Blog */
|
||||||
|
|
||||||
|
|
||||||
|
/* Tweet */
|
||||||
|
#twitter-carousel .item a {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter:after {
|
||||||
|
border-color: #ff6600 transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter, .twitter-left-control:hover, .twitter-right-control:hover {
|
||||||
|
background-color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Tweet */
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.bottom-footer {
|
||||||
|
border-top: 7px solid #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-footer-left p a {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i{
|
||||||
|
background-color: #ff6600;
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i:hover{
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Footer */
|
||||||
|
|
||||||
|
/* Contacts */
|
||||||
|
.contact_form i{
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"] {
|
||||||
|
background: #ff6600;
|
||||||
|
border: 1px solid #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"]:hover {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_form input[type="submit"]:hover {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End Contacts */
|
||||||
|
|
||||||
|
/* To Top */
|
||||||
|
a.scroll-up {
|
||||||
|
background: none repeat scroll 0 0 #ff6600;
|
||||||
|
}
|
||||||
|
a.scroll-up i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover i {
|
||||||
|
color: #ff6600;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover {
|
||||||
|
color: #ff6600;
|
||||||
|
border-color: #ff6600;
|
||||||
|
}
|
||||||
|
/* End To Top */
|
||||||
@@ -0,0 +1,170 @@
|
|||||||
|
div.pp_default .pp_top,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_right,div.pp_default .pp_bottom,div.pp_default .pp_bottom .pp_left,div.pp_default .pp_bottom .pp_middle,div.pp_default .pp_bottom .pp_right{height:13px}
|
||||||
|
div.pp_default .pp_top .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat}
|
||||||
|
div.pp_default .pp_top .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x}
|
||||||
|
div.pp_default .pp_top .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat}
|
||||||
|
div.pp_default .pp_content .ppt{color:#f8f8f8}
|
||||||
|
div.pp_default .pp_content_container .pp_left{background:url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y;padding-left:13px}
|
||||||
|
div.pp_default .pp_content_container .pp_right{background:url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y;padding-right:13px}
|
||||||
|
div.pp_default .pp_next:hover{background:url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat;cursor:pointer}
|
||||||
|
div.pp_default .pp_previous:hover{background:url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat;cursor:pointer}
|
||||||
|
div.pp_default .pp_expand{background:url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat;cursor:pointer;width:28px;height:28px}
|
||||||
|
div.pp_default .pp_expand:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat;cursor:pointer}
|
||||||
|
div.pp_default .pp_contract{background:url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat;cursor:pointer;width:28px;height:28px}
|
||||||
|
div.pp_default .pp_contract:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat;cursor:pointer}
|
||||||
|
div.pp_default .pp_close{width:30px;height:30px;background:url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat;cursor:pointer}
|
||||||
|
div.pp_default .pp_gallery ul li a{background:url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8;border:1px solid #aaa}
|
||||||
|
div.pp_default .pp_social{margin-top:7px}
|
||||||
|
div.pp_default .pp_gallery a.pp_arrow_previous,div.pp_default .pp_gallery a.pp_arrow_next{position:static;left:auto}
|
||||||
|
div.pp_default .pp_nav .pp_play,div.pp_default .pp_nav .pp_pause{background:url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat;height:30px;width:30px}
|
||||||
|
div.pp_default .pp_nav .pp_pause{background-position:-51px -29px}
|
||||||
|
div.pp_default a.pp_arrow_previous,div.pp_default a.pp_arrow_next{background:url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat;height:20px;width:20px;margin:4px 0 0}
|
||||||
|
div.pp_default a.pp_arrow_next{left:52px;background-position:-82px -3px}
|
||||||
|
div.pp_default .pp_content_container .pp_details{margin-top:5px}
|
||||||
|
div.pp_default .pp_nav{clear:none;height:30px;width:110px;position:relative}
|
||||||
|
div.pp_default .pp_nav .currentTextHolder{font-family:Georgia;font-style:italic;color:#999;font-size:11px;left:75px;line-height:25px;position:absolute;top:2px;margin:0;padding:0 0 0 10px}
|
||||||
|
div.pp_default .pp_close:hover,div.pp_default .pp_nav .pp_play:hover,div.pp_default .pp_nav .pp_pause:hover,div.pp_default .pp_arrow_next:hover,div.pp_default .pp_arrow_previous:hover{opacity:0.7}
|
||||||
|
div.pp_default .pp_description{font-size:11px;font-weight:700;line-height:14px;margin:5px 50px 5px 0}
|
||||||
|
div.pp_default .pp_bottom .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat}
|
||||||
|
div.pp_default .pp_bottom .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x}
|
||||||
|
div.pp_default .pp_bottom .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat}
|
||||||
|
div.pp_default .pp_loaderIcon{background:url(../images/prettyPhoto/default/loader.gif) center center no-repeat}
|
||||||
|
div.light_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat}
|
||||||
|
div.light_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat}
|
||||||
|
div.light_rounded .pp_next:hover{background:url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat;cursor:pointer}
|
||||||
|
div.light_rounded .pp_previous:hover{background:url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat;cursor:pointer}
|
||||||
|
div.light_rounded .pp_expand{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer}
|
||||||
|
div.light_rounded .pp_expand:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer}
|
||||||
|
div.light_rounded .pp_contract{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer}
|
||||||
|
div.light_rounded .pp_contract:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer}
|
||||||
|
div.light_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer}
|
||||||
|
div.light_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
|
||||||
|
div.light_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
|
||||||
|
div.light_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat}
|
||||||
|
div.light_rounded .pp_arrow_next{background:url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat}
|
||||||
|
div.light_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat}
|
||||||
|
div.light_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat}
|
||||||
|
div.dark_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat}
|
||||||
|
div.dark_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat}
|
||||||
|
div.dark_rounded .pp_content_container .pp_left{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y}
|
||||||
|
div.dark_rounded .pp_content_container .pp_right{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y}
|
||||||
|
div.dark_rounded .pp_next:hover{background:url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat;cursor:pointer}
|
||||||
|
div.dark_rounded .pp_previous:hover{background:url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat;cursor:pointer}
|
||||||
|
div.dark_rounded .pp_expand{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer}
|
||||||
|
div.dark_rounded .pp_expand:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer}
|
||||||
|
div.dark_rounded .pp_contract{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer}
|
||||||
|
div.dark_rounded .pp_contract:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer}
|
||||||
|
div.dark_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer}
|
||||||
|
div.dark_rounded .pp_description{margin-right:85px;color:#fff}
|
||||||
|
div.dark_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
|
||||||
|
div.dark_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
|
||||||
|
div.dark_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat}
|
||||||
|
div.dark_rounded .pp_arrow_next{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat}
|
||||||
|
div.dark_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat}
|
||||||
|
div.dark_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat}
|
||||||
|
div.dark_rounded .pp_loaderIcon{background:url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat}
|
||||||
|
div.dark_square .pp_left,div.dark_square .pp_middle,div.dark_square .pp_right,div.dark_square .pp_content{background:#000}
|
||||||
|
div.dark_square .pp_description{color:#fff;margin:0 85px 0 0}
|
||||||
|
div.dark_square .pp_loaderIcon{background:url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat}
|
||||||
|
div.dark_square .pp_expand{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat;cursor:pointer}
|
||||||
|
div.dark_square .pp_expand:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat;cursor:pointer}
|
||||||
|
div.dark_square .pp_contract{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat;cursor:pointer}
|
||||||
|
div.dark_square .pp_contract:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat;cursor:pointer}
|
||||||
|
div.dark_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat;cursor:pointer}
|
||||||
|
div.dark_square .pp_nav{clear:none}
|
||||||
|
div.dark_square .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
|
||||||
|
div.dark_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
|
||||||
|
div.dark_square .pp_arrow_previous{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat}
|
||||||
|
div.dark_square .pp_arrow_next{background:url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat}
|
||||||
|
div.dark_square .pp_next:hover{background:url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat;cursor:pointer}
|
||||||
|
div.dark_square .pp_previous:hover{background:url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat;cursor:pointer}
|
||||||
|
div.light_square .pp_expand{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat;cursor:pointer}
|
||||||
|
div.light_square .pp_expand:hover{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat;cursor:pointer}
|
||||||
|
div.light_square .pp_contract{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat;cursor:pointer}
|
||||||
|
div.light_square .pp_contract:hover{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat;cursor:pointer}
|
||||||
|
div.light_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat;cursor:pointer}
|
||||||
|
div.light_square .pp_nav .pp_play{background:url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
|
||||||
|
div.light_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
|
||||||
|
div.light_square .pp_arrow_previous{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat}
|
||||||
|
div.light_square .pp_arrow_next{background:url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat}
|
||||||
|
div.light_square .pp_next:hover{background:url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat;cursor:pointer}
|
||||||
|
div.light_square .pp_previous:hover{background:url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat;cursor:pointer}
|
||||||
|
div.facebook .pp_top .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat}
|
||||||
|
div.facebook .pp_top .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x}
|
||||||
|
div.facebook .pp_top .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat}
|
||||||
|
div.facebook .pp_content_container .pp_left{background:url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y}
|
||||||
|
div.facebook .pp_content_container .pp_right{background:url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y}
|
||||||
|
div.facebook .pp_expand{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat;cursor:pointer}
|
||||||
|
div.facebook .pp_expand:hover{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat;cursor:pointer}
|
||||||
|
div.facebook .pp_contract{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat;cursor:pointer}
|
||||||
|
div.facebook .pp_contract:hover{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat;cursor:pointer}
|
||||||
|
div.facebook .pp_close{width:22px;height:22px;background:url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat;cursor:pointer}
|
||||||
|
div.facebook .pp_description{margin:0 37px 0 0}
|
||||||
|
div.facebook .pp_loaderIcon{background:url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat}
|
||||||
|
div.facebook .pp_arrow_previous{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat;height:22px;margin-top:0;width:22px}
|
||||||
|
div.facebook .pp_arrow_previous.disabled{background-position:0 -96px;cursor:default}
|
||||||
|
div.facebook .pp_arrow_next{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat;height:22px;margin-top:0;width:22px}
|
||||||
|
div.facebook .pp_arrow_next.disabled{background-position:-32px -96px;cursor:default}
|
||||||
|
div.facebook .pp_nav{margin-top:0}
|
||||||
|
div.facebook .pp_nav p{font-size:15px;padding:0 3px 0 4px}
|
||||||
|
div.facebook .pp_nav .pp_play{background:url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat;height:22px;width:22px}
|
||||||
|
div.facebook .pp_nav .pp_pause{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat;height:22px;width:22px}
|
||||||
|
div.facebook .pp_next:hover{background:url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat;cursor:pointer}
|
||||||
|
div.facebook .pp_previous:hover{background:url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat;cursor:pointer}
|
||||||
|
div.facebook .pp_bottom .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat}
|
||||||
|
div.facebook .pp_bottom .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x}
|
||||||
|
div.facebook .pp_bottom .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat}
|
||||||
|
div.pp_pic_holder a:focus{outline:none}
|
||||||
|
div.pp_overlay{background:#000;display:none;left:0;position:absolute;top:0;width:100%;z-index:9500}
|
||||||
|
div.pp_pic_holder{display:none;position:absolute;width:100px;z-index:10000}
|
||||||
|
.pp_content{height:40px;min-width:40px}
|
||||||
|
* html .pp_content{width:40px}
|
||||||
|
.pp_content_container{position:relative;text-align:left;width:100%}
|
||||||
|
.pp_content_container .pp_left{padding-left:20px}
|
||||||
|
.pp_content_container .pp_right{padding-right:20px}
|
||||||
|
.pp_content_container .pp_details{float:left;margin:10px 0 2px}
|
||||||
|
.pp_description{display:none;margin:0}
|
||||||
|
.pp_social{float:left;margin:0}
|
||||||
|
.pp_social .facebook{float:left;margin-left:5px;width:55px;overflow:hidden}
|
||||||
|
.pp_social .twitter{float:left}
|
||||||
|
.pp_nav{clear:right;float:left;margin:3px 10px 0 0}
|
||||||
|
.pp_nav p{float:left;white-space:nowrap;margin:2px 4px}
|
||||||
|
.pp_nav .pp_play,.pp_nav .pp_pause{float:left;margin-right:4px;text-indent:-10000px}
|
||||||
|
a.pp_arrow_previous,a.pp_arrow_next{display:block;float:left;height:15px;margin-top:3px;overflow:hidden;text-indent:-10000px;width:14px}
|
||||||
|
.pp_hoverContainer{position:absolute;top:0;width:100%;z-index:2000}
|
||||||
|
.pp_gallery{display:none;left:50%;margin-top:-50px;position:absolute;z-index:10000}
|
||||||
|
.pp_gallery div{float:left;overflow:hidden;position:relative}
|
||||||
|
.pp_gallery ul{float:left;height:35px;position:relative;white-space:nowrap;margin:0 0 0 5px;padding:0}
|
||||||
|
.pp_gallery ul a{border:1px rgba(0,0,0,0.5) solid;display:block;float:left;height:33px;overflow:hidden}
|
||||||
|
.pp_gallery ul a img{border:0}
|
||||||
|
.pp_gallery li{display:block;float:left;margin:0 5px 0 0;padding:0}
|
||||||
|
.pp_gallery li.default a{background:url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat;display:block;height:33px;width:50px}
|
||||||
|
.pp_gallery .pp_arrow_previous,.pp_gallery .pp_arrow_next{margin-top:7px!important}
|
||||||
|
a.pp_next{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:right;height:100%;text-indent:-10000px;width:49%}
|
||||||
|
a.pp_previous{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:left;height:100%;text-indent:-10000px;width:49%}
|
||||||
|
a.pp_expand,a.pp_contract{cursor:pointer;display:none;height:20px;position:absolute;right:30px;text-indent:-10000px;top:10px;width:20px;z-index:20000}
|
||||||
|
a.pp_close{position:absolute;right:0;top:0;display:block;line-height:22px;text-indent:-10000px}
|
||||||
|
.pp_loaderIcon{display:block;height:24px;left:50%;position:absolute;top:50%;width:24px;margin:-12px 0 0 -12px}
|
||||||
|
#pp_full_res{line-height:1!important}
|
||||||
|
#pp_full_res .pp_inline{text-align:left}
|
||||||
|
#pp_full_res .pp_inline p{margin:0 0 15px}
|
||||||
|
div.ppt{color:#fff;display:none;font-size:17px;z-index:9999;margin:0 0 5px 15px}
|
||||||
|
div.pp_default .pp_content,div.light_rounded .pp_content{background-color:#fff}
|
||||||
|
div.pp_default #pp_full_res .pp_inline,div.light_rounded .pp_content .ppt,div.light_rounded #pp_full_res .pp_inline,div.light_square .pp_content .ppt,div.light_square #pp_full_res .pp_inline,div.facebook .pp_content .ppt,div.facebook #pp_full_res .pp_inline{color:#000}
|
||||||
|
div.pp_default .pp_gallery ul li a:hover,div.pp_default .pp_gallery ul li.selected a,.pp_gallery ul a:hover,.pp_gallery li.selected a{border-color:#fff}
|
||||||
|
div.pp_default .pp_details,div.light_rounded .pp_details,div.dark_rounded .pp_details,div.dark_square .pp_details,div.light_square .pp_details,div.facebook .pp_details{position:relative}
|
||||||
|
div.light_rounded .pp_top .pp_middle,div.light_rounded .pp_content_container .pp_left,div.light_rounded .pp_content_container .pp_right,div.light_rounded .pp_bottom .pp_middle,div.light_square .pp_left,div.light_square .pp_middle,div.light_square .pp_right,div.light_square .pp_content,div.facebook .pp_content{background:#fff}
|
||||||
|
div.light_rounded .pp_description,div.light_square .pp_description{margin-right:85px}
|
||||||
|
div.light_rounded .pp_gallery a.pp_arrow_previous,div.light_rounded .pp_gallery a.pp_arrow_next,div.dark_rounded .pp_gallery a.pp_arrow_previous,div.dark_rounded .pp_gallery a.pp_arrow_next,div.dark_square .pp_gallery a.pp_arrow_previous,div.dark_square .pp_gallery a.pp_arrow_next,div.light_square .pp_gallery a.pp_arrow_previous,div.light_square .pp_gallery a.pp_arrow_next{margin-top:12px!important}
|
||||||
|
div.light_rounded .pp_arrow_previous.disabled,div.dark_rounded .pp_arrow_previous.disabled,div.dark_square .pp_arrow_previous.disabled,div.light_square .pp_arrow_previous.disabled{background-position:0 -87px;cursor:default}
|
||||||
|
div.light_rounded .pp_arrow_next.disabled,div.dark_rounded .pp_arrow_next.disabled,div.dark_square .pp_arrow_next.disabled,div.light_square .pp_arrow_next.disabled{background-position:-22px -87px;cursor:default}
|
||||||
|
div.light_rounded .pp_loaderIcon,div.light_square .pp_loaderIcon{background:url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat}
|
||||||
|
div.dark_rounded .pp_top .pp_middle,div.dark_rounded .pp_content,div.dark_rounded .pp_bottom .pp_middle{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat}
|
||||||
|
div.dark_rounded .currentTextHolder,div.dark_square .currentTextHolder{color:#c4c4c4}
|
||||||
|
div.dark_rounded #pp_full_res .pp_inline,div.dark_square #pp_full_res .pp_inline{color:#fff}
|
||||||
|
.pp_top,.pp_bottom{height:20px;position:relative}
|
||||||
|
* html .pp_top,* html .pp_bottom{padding:0 20px}
|
||||||
|
.pp_top .pp_left,.pp_bottom .pp_left{height:20px;left:0;position:absolute;width:20px}
|
||||||
|
.pp_top .pp_middle,.pp_bottom .pp_middle{height:20px;left:20px;position:absolute;right:20px}
|
||||||
|
* html .pp_top .pp_middle,* html .pp_bottom .pp_middle{left:0;position:static}
|
||||||
|
.pp_top .pp_right,.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}
|
||||||
|
.pp_fade,.pp_gallery li.default a img{display:none}
|
||||||
@@ -0,0 +1,410 @@
|
|||||||
|
/* Purple Version CSS */
|
||||||
|
|
||||||
|
a:link, a:visited, a:hover, a:focus{text-decoration: none; color: #9b59b6;}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
background: url("../../images/logo-white5.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 strong{
|
||||||
|
color:#9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control:hover,
|
||||||
|
.right-control:hover {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.learn-more {
|
||||||
|
border: 2px solid #9b59b6;
|
||||||
|
}
|
||||||
|
.learn-more:hover {
|
||||||
|
background: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control, .right-control {
|
||||||
|
border:1px solid #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Home Slider */
|
||||||
|
|
||||||
|
|
||||||
|
/* Navbar */
|
||||||
|
|
||||||
|
/* Link Color */
|
||||||
|
.navbar-inverse { border-color: #9b59b6}
|
||||||
|
.navbar-inverse .navbar-nav>li>a:hover, .navbar-inverse .navbar-nav>li>a:focus { color: #9b59b6}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus { color: #9b59b6}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus { color: #9b59b6}
|
||||||
|
.dropdown-menu>li>a { color: #9b59b6}
|
||||||
|
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret { border-top-color: #9b59b6}
|
||||||
|
|
||||||
|
.navbar-toggle {
|
||||||
|
border: transparent;
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inverse .navbar-toggle:hover,
|
||||||
|
.navbar-inverse .navbar-toggle:focus {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Navbar */
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
.spinner > div
|
||||||
|
{
|
||||||
|
background: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Loader*/
|
||||||
|
|
||||||
|
/* Titles & Color */
|
||||||
|
.section-title h1 span{
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #9b59b6;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover{
|
||||||
|
color: #fff;
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover a{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover a{
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse {
|
||||||
|
color: #9b59b6;
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse{
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse a{
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a:hover {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one{
|
||||||
|
background: none repeat scroll 0 0 #9b59b6;
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one:hover {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
color: #9b59b6;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1 {
|
||||||
|
background: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1:after {
|
||||||
|
box-shadow: 0 0 0 4px #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-color {
|
||||||
|
background: none repeat scroll 0 0 #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps-negative {
|
||||||
|
background: none repeat scroll 0 0 #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blockqoute-style-2 {
|
||||||
|
border-left: 5px solid #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
cite {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Effect 1a */
|
||||||
|
.hovicon.effect-1.sub-a:hover {
|
||||||
|
background: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-color
|
||||||
|
{
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-color
|
||||||
|
{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Titles & Color */
|
||||||
|
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.number p:first-letter {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Facts */
|
||||||
|
|
||||||
|
/* Team Member */
|
||||||
|
.team-member-holder:hover {
|
||||||
|
border-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-overlay {
|
||||||
|
background: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-profile {
|
||||||
|
color:#9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-social-list-item {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-details h3{
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Team Member */
|
||||||
|
|
||||||
|
/* Skills */
|
||||||
|
.skills h4:first-letter {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Skills */
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
#filters li span.active,#filters li span:hover {
|
||||||
|
background: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filters li span {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-details h3 {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-description h3 {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Works */
|
||||||
|
|
||||||
|
/* Partners */
|
||||||
|
.partners-img:hover img{
|
||||||
|
border-color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Partners */
|
||||||
|
|
||||||
|
/* Pricing */
|
||||||
|
.single-table h4:first-letter {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.price {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price, .sign_form input[type="submit"] {
|
||||||
|
background: none repeat scroll 0 0 #9b59b6;
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price:hover {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price-icon, .single-table.featured .btn-price {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured{
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Pricing */
|
||||||
|
|
||||||
|
/* Clients */
|
||||||
|
.clients h5 {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators .active {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
border-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators li {
|
||||||
|
border-color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Clients */
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a:hover {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End News */
|
||||||
|
|
||||||
|
/* Blog */
|
||||||
|
.widget.tags-cloud a {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget.tags-cloud a:hover {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a:hover {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pager li > a, .pager li > span {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
}
|
||||||
|
.pager li > a:hover, .pager li > a:focus {
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Blog */
|
||||||
|
|
||||||
|
|
||||||
|
/* Tweet */
|
||||||
|
#twitter-carousel .item a {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter:after {
|
||||||
|
border-color: #9b59b6 transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter, .twitter-left-control:hover, .twitter-right-control:hover {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Tweet */
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.bottom-footer {
|
||||||
|
border-top: 7px solid #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-footer-left p a {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i{
|
||||||
|
background-color: #9b59b6;
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i:hover{
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Footer */
|
||||||
|
|
||||||
|
/* Contacts */
|
||||||
|
.contact_form i{
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"] {
|
||||||
|
background: #9b59b6;
|
||||||
|
border: 1px solid #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"]:hover {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_form input[type="submit"]:hover {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End Contacts */
|
||||||
|
|
||||||
|
/* To Top */
|
||||||
|
a.scroll-up {
|
||||||
|
background: none repeat scroll 0 0 #9b59b6;
|
||||||
|
}
|
||||||
|
a.scroll-up i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover i {
|
||||||
|
color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover {
|
||||||
|
color: #9b59b6;
|
||||||
|
border-color: #9b59b6;
|
||||||
|
}
|
||||||
|
/* End To Top */
|
||||||
@@ -0,0 +1,410 @@
|
|||||||
|
/* Red Version CSS */
|
||||||
|
|
||||||
|
a:link, a:visited, a:hover, a:focus{text-decoration: none; color: #e21e25;}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
background: url("../../images/logo-white2.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 strong{
|
||||||
|
color:#e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control:hover,
|
||||||
|
.right-control:hover {
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.learn-more {
|
||||||
|
border: 2px solid #e21e25;
|
||||||
|
}
|
||||||
|
.learn-more:hover {
|
||||||
|
background: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control, .right-control {
|
||||||
|
border:1px solid #e21e25;
|
||||||
|
}
|
||||||
|
/* End Home Slider */
|
||||||
|
|
||||||
|
|
||||||
|
/* Navbar */
|
||||||
|
|
||||||
|
/* Link Color */
|
||||||
|
.navbar-inverse { border-color: #e21e25}
|
||||||
|
.navbar-inverse .navbar-nav>li>a:hover, .navbar-inverse .navbar-nav>li>a:focus { color: #e21e25}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus { color: #e21e25}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus { color: #e21e25}
|
||||||
|
.dropdown-menu>li>a { color: #e21e25}
|
||||||
|
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret { border-top-color: #e21e25}
|
||||||
|
|
||||||
|
.navbar-toggle {
|
||||||
|
border: transparent;
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inverse .navbar-toggle:hover,
|
||||||
|
.navbar-inverse .navbar-toggle:focus {
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Navbar */
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
.spinner > div
|
||||||
|
{
|
||||||
|
background: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Loader */
|
||||||
|
|
||||||
|
/* Titles & Color */
|
||||||
|
.section-title h1 span{
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #e21e25;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover{
|
||||||
|
color: #fff;
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover a{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover a{
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse {
|
||||||
|
color: #e21e25;
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse{
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse a{
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a:hover {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one{
|
||||||
|
background: none repeat scroll 0 0 #e21e25;
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one:hover {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
color: #e21e25;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1 {
|
||||||
|
background: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1:after {
|
||||||
|
box-shadow: 0 0 0 4px #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-color {
|
||||||
|
background: none repeat scroll 0 0 #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps-negative {
|
||||||
|
background: none repeat scroll 0 0 #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blockqoute-style-2 {
|
||||||
|
border-left: 5px solid #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
cite {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Effect 1a */
|
||||||
|
.hovicon.effect-1.sub-a:hover {
|
||||||
|
background: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-color
|
||||||
|
{
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-color
|
||||||
|
{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Titles & Color */
|
||||||
|
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.number p:first-letter {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Facts */
|
||||||
|
|
||||||
|
/* Team Member */
|
||||||
|
.team-member-holder:hover {
|
||||||
|
border-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-overlay {
|
||||||
|
background: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-profile {
|
||||||
|
color:#e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-social-list-item {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-details h3{
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Team Member */
|
||||||
|
|
||||||
|
/* Skills */
|
||||||
|
.skills h4:first-letter {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Skills */
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
#filters li span.active,#filters li span:hover {
|
||||||
|
background: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filters li span {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-details h3 {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-description h3 {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Works */
|
||||||
|
|
||||||
|
/* Partners */
|
||||||
|
.partners-img:hover img{
|
||||||
|
border-color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Partners */
|
||||||
|
|
||||||
|
/* Pricing */
|
||||||
|
.single-table h4:first-letter {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.price {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price, .sign_form input[type="submit"] {
|
||||||
|
background: none repeat scroll 0 0 #e21e25;
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price:hover {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price-icon, .single-table.featured .btn-price {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured{
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price {
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Pricing */
|
||||||
|
|
||||||
|
/* Clients */
|
||||||
|
.clients h5 {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators .active {
|
||||||
|
background-color: #e21e25;
|
||||||
|
border-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators li {
|
||||||
|
border-color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Clients */
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date {
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a:hover {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End News */
|
||||||
|
|
||||||
|
/* Blog */
|
||||||
|
.widget.tags-cloud a {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget.tags-cloud a:hover {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a:hover {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pager li > a, .pager li > span {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
}
|
||||||
|
.pager li > a:hover, .pager li > a:focus {
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Blog */
|
||||||
|
|
||||||
|
|
||||||
|
/* Tweet */
|
||||||
|
#twitter-carousel .item a {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter:after {
|
||||||
|
border-color: #e21e25 transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter, .twitter-left-control:hover, .twitter-right-control:hover {
|
||||||
|
background-color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Tweet */
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.bottom-footer {
|
||||||
|
border-top: 7px solid #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-footer-left p a {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i{
|
||||||
|
background-color: #e21e25;
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i:hover{
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Footer */
|
||||||
|
|
||||||
|
/* Contacts */
|
||||||
|
.contact_form i{
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"] {
|
||||||
|
background: #e21e25;
|
||||||
|
border: 1px solid #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"]:hover {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_form input[type="submit"]:hover {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End Contacts */
|
||||||
|
|
||||||
|
/* To Top */
|
||||||
|
a.scroll-up {
|
||||||
|
background: none repeat scroll 0 0 #e21e25;
|
||||||
|
}
|
||||||
|
a.scroll-up i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover i {
|
||||||
|
color: #e21e25;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover {
|
||||||
|
color: #e21e25;
|
||||||
|
border-color: #e21e25;
|
||||||
|
}
|
||||||
|
/* End To Top */
|
||||||
@@ -0,0 +1,280 @@
|
|||||||
|
/* Small desktop */
|
||||||
|
@media (min-width: 980px) and (max-width: 1199px) {
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
.myport .portfolio ,
|
||||||
|
.myport .portfolio-5-col,
|
||||||
|
.myport .portfolio-4-col,
|
||||||
|
.myport .portfolio-3-col
|
||||||
|
{
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-holder:hover .overlay-content{
|
||||||
|
top: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Portrait tablet to landscape and desktop */
|
||||||
|
@media (min-width: 768px) and (max-width: 979px) {
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 {
|
||||||
|
font-size: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#home-slider .caption p {
|
||||||
|
font-size: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Navagation*/
|
||||||
|
.navbar-header {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
.navbar-left,.navbar-right {
|
||||||
|
float: none !important;
|
||||||
|
}
|
||||||
|
.navbar-toggle {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.navbar-collapse {
|
||||||
|
border-top: 1px solid transparent;
|
||||||
|
box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
|
||||||
|
}
|
||||||
|
.navbar-fixed-top {
|
||||||
|
top: 0;
|
||||||
|
border-width: 0 0 1px;
|
||||||
|
}
|
||||||
|
.navbar-collapse.collapse {
|
||||||
|
display: none!important;
|
||||||
|
}
|
||||||
|
.navbar-nav {
|
||||||
|
float: none!important;
|
||||||
|
margin-top: 7.5px;
|
||||||
|
}
|
||||||
|
.navbar-nav>li {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
.navbar-nav>li>a {
|
||||||
|
padding-top: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
.collapse.in{
|
||||||
|
display:block !important;
|
||||||
|
}
|
||||||
|
.navbar-collapse.in {
|
||||||
|
overflow-y: auto !important;
|
||||||
|
}
|
||||||
|
.navbar-nav .open .dropdown-menu {
|
||||||
|
position: static;
|
||||||
|
float: none;
|
||||||
|
width: auto;
|
||||||
|
margin-top: 0;
|
||||||
|
background-color: transparent;
|
||||||
|
border: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.navbar-nav .open .dropdown-menu>li>a, .navbar-nav .open .dropdown-menu .dropdown-header {
|
||||||
|
padding: 5px 15px 5px 25px;
|
||||||
|
}
|
||||||
|
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,
|
||||||
|
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus {
|
||||||
|
color: #fff;
|
||||||
|
background-color: transparent;
|
||||||
|
background-image:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Block Best Fitting */
|
||||||
|
.wrapper-team .col-md-3,
|
||||||
|
.wrapper-number .col-md-3,
|
||||||
|
.wrapper-count .col-md-3,
|
||||||
|
.wrapper-partners .col-md-3
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Price */
|
||||||
|
.wrapper-pricing .col-md-3{
|
||||||
|
margin: 0 auto 20px;
|
||||||
|
width: 50%;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
.myport .portfolio ,
|
||||||
|
.myport .portfolio-5-col,
|
||||||
|
.myport .portfolio-4-col,
|
||||||
|
.myport .portfolio-3-col
|
||||||
|
{
|
||||||
|
width: 33.33%;
|
||||||
|
}
|
||||||
|
.img-holder:hover .overlay-content{
|
||||||
|
top: 20%;
|
||||||
|
}
|
||||||
|
/* News */
|
||||||
|
.post-date{
|
||||||
|
padding: 5px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-date h2 {
|
||||||
|
font-size: 16px;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-date h2 span {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Contact Form */
|
||||||
|
.contact_form {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Landscape phone to portrait tablet */
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
|
||||||
|
#home-slider .caption h1 {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#home-slider .caption p {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Block Best Fitting */
|
||||||
|
.wrapper-number .col-md-3,
|
||||||
|
.wrapper-team .col-md-3,
|
||||||
|
.wrapper-count .col-md-3,
|
||||||
|
.wrapper-partners .col-md-3{
|
||||||
|
float: left;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Price */
|
||||||
|
.wrapper-pricing .col-md-3{
|
||||||
|
margin: 0 auto 20px;
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
.myport .portfolio ,
|
||||||
|
.myport .portfolio-5-col,
|
||||||
|
.myport .portfolio-4-col,
|
||||||
|
.myport .portfolio-3-col
|
||||||
|
{
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.img-holder:hover .overlay-content{
|
||||||
|
top: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date{
|
||||||
|
padding: 5px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-date h2 {
|
||||||
|
font-size: 16px;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-date h2 span {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Contact Form */
|
||||||
|
.contact_form {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Landscape phones and down */
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
#home-slider .caption {
|
||||||
|
font-size: 15px;
|
||||||
|
padding: 0 30px;
|
||||||
|
}
|
||||||
|
.left-control, .right-control {
|
||||||
|
font-size: 20px;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 25px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
#home-slider:hover .right-control {
|
||||||
|
right: 15px;
|
||||||
|
}
|
||||||
|
#home-slider:hover .left-control {
|
||||||
|
left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Block Best Fitting */
|
||||||
|
.wrapper-team .col-md-3,
|
||||||
|
.wrapper-number .col-md-3,
|
||||||
|
.wrapper-count .col-md-3,
|
||||||
|
.wrapper-partners .col-md-3
|
||||||
|
{
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Price */
|
||||||
|
.wrapper-pricing .col-md-3{
|
||||||
|
margin: 0 auto 20px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.wrapper-contacts-icons .col-xs-4{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
.myport .portfolio ,
|
||||||
|
.myport .portfolio-5-col,
|
||||||
|
.myport .portfolio-4-col,
|
||||||
|
.myport .portfolio-3-col
|
||||||
|
{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Titles */
|
||||||
|
.section-title h1 span{
|
||||||
|
padding: 0 4px;
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
.element-title h1 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.element-title h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Contact Form */
|
||||||
|
.contact_form {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (-webkit-min-device-pixel-ratio: 1.5)
|
||||||
|
{
|
||||||
|
/*.navbar-brand { background: url("../images/logo-white@2x.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);background-size: 151px 47px; }*/
|
||||||
|
}
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,410 @@
|
|||||||
|
/* Yellow Version CSS */
|
||||||
|
|
||||||
|
a:link, a:visited, a:hover, a:focus{text-decoration: none; color: #ffd600;}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
background: url("../../images/logo-white7.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home Slider */
|
||||||
|
#home-slider .caption h1 strong{
|
||||||
|
color:#ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control:hover,
|
||||||
|
.right-control:hover {
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.learn-more {
|
||||||
|
border: 2px solid #ffd600;
|
||||||
|
}
|
||||||
|
.learn-more:hover {
|
||||||
|
background: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-control, .right-control {
|
||||||
|
border:1px solid #ffd600;
|
||||||
|
}
|
||||||
|
/* End Home Slider */
|
||||||
|
|
||||||
|
|
||||||
|
/* Navbar */
|
||||||
|
|
||||||
|
/* Link Color */
|
||||||
|
.navbar-inverse { border-color: #ffd600}
|
||||||
|
.navbar-inverse .navbar-nav>li>a:hover, .navbar-inverse .navbar-nav>li>a:focus { color: #ffd600}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:hover, .navbar-inverse .navbar-nav>.open>a:focus { color: #ffd600}
|
||||||
|
.navbar-inverse .navbar-nav>.active>a:hover, .navbar-inverse .navbar-nav>.active>a:focus { color: #ffd600}
|
||||||
|
.dropdown-menu>li>a { color: #ffd600}
|
||||||
|
.navbar-inverse .navbar-nav>.dropdown>a:hover .caret { border-top-color: #ffd600}
|
||||||
|
|
||||||
|
.navbar-toggle {
|
||||||
|
border: transparent;
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inverse .navbar-toggle:hover,
|
||||||
|
.navbar-inverse .navbar-toggle:focus {
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Navbar */
|
||||||
|
|
||||||
|
/* Loader */
|
||||||
|
.spinner > div
|
||||||
|
{
|
||||||
|
background: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Loader*/
|
||||||
|
|
||||||
|
/* Titles & Color */
|
||||||
|
.section-title h1 span{
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-image: none;
|
||||||
|
background-color: #ffd600;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover{
|
||||||
|
color: #fff;
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse:hover a{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover a{
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse {
|
||||||
|
color: #ffd600;
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.btn-inverse{
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-inverse a{
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
a.btn:hover {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn a:hover {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one{
|
||||||
|
background: none repeat scroll 0 0 #ffd600;
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-one:hover {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
color: #ffd600;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1 {
|
||||||
|
background: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hovicon.effect-1:after {
|
||||||
|
box-shadow: 0 0 0 4px #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-color {
|
||||||
|
background: none repeat scroll 0 0 #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps-negative {
|
||||||
|
background: none repeat scroll 0 0 #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dporcaps {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blockqoute-style-2 {
|
||||||
|
border-left: 5px solid #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
cite {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Effect 1a */
|
||||||
|
.hovicon.effect-1.sub-a:hover {
|
||||||
|
background: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-color
|
||||||
|
{
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white-color
|
||||||
|
{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Titles & Color */
|
||||||
|
|
||||||
|
|
||||||
|
/* Facts */
|
||||||
|
.number p:first-letter {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Facts */
|
||||||
|
|
||||||
|
/* Team Member */
|
||||||
|
.team-member-holder:hover {
|
||||||
|
border-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-overlay {
|
||||||
|
background: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-profile {
|
||||||
|
color:#ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-social-list-item {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-details h3{
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Team Member */
|
||||||
|
|
||||||
|
/* Skills */
|
||||||
|
.skills h4:first-letter {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Skills */
|
||||||
|
|
||||||
|
/* Works */
|
||||||
|
#filters li span.active,#filters li span:hover {
|
||||||
|
background: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filters li span {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-details h3 {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.project-description h3 {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Works */
|
||||||
|
|
||||||
|
/* Partners */
|
||||||
|
.partners-img:hover img{
|
||||||
|
border-color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Partners */
|
||||||
|
|
||||||
|
/* Pricing */
|
||||||
|
.single-table h4:first-letter {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.price {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price, .sign_form input[type="submit"] {
|
||||||
|
background: none repeat scroll 0 0 #ffd600;
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table .btn-price:hover {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price-icon, .single-table.featured .btn-price {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured{
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-table.featured .price {
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Pricing */
|
||||||
|
|
||||||
|
/* Clients */
|
||||||
|
.clients h5 {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators .active {
|
||||||
|
background-color: #ffd600;
|
||||||
|
border-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel-indicators li {
|
||||||
|
border-color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Clients */
|
||||||
|
|
||||||
|
/* News */
|
||||||
|
.post-date {
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a:hover {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End News */
|
||||||
|
|
||||||
|
/* Blog */
|
||||||
|
.widget.tags-cloud a {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget.tags-cloud a:hover {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags a:hover {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pager li > a, .pager li > span {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
}
|
||||||
|
.pager li > a:hover, .pager li > a:focus {
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Blog */
|
||||||
|
|
||||||
|
|
||||||
|
/* Tweet */
|
||||||
|
#twitter-carousel .item a {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter:after {
|
||||||
|
border-color: #ffd600 transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter-icon .fa-twitter, .twitter-left-control:hover, .twitter-right-control:hover {
|
||||||
|
background-color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Tweet */
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.bottom-footer {
|
||||||
|
border-top: 7px solid #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-footer-left p a {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i{
|
||||||
|
background-color: #ffd600;
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-social-icons li a i:hover{
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Footer */
|
||||||
|
|
||||||
|
/* Contacts */
|
||||||
|
.contact_form i{
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"] {
|
||||||
|
background: #ffd600;
|
||||||
|
border: 1px solid #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact_form input[type="submit"]:hover {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_form input[type="submit"]:hover {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End Contacts */
|
||||||
|
|
||||||
|
/* To Top */
|
||||||
|
a.scroll-up {
|
||||||
|
background: none repeat scroll 0 0 #ffd600;
|
||||||
|
}
|
||||||
|
a.scroll-up i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover i {
|
||||||
|
color: #ffd600;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.scroll-up:hover {
|
||||||
|
color: #ffd600;
|
||||||
|
border-color: #ffd600;
|
||||||
|
}
|
||||||
|
/* End To Top */
|
||||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 434 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user