diff --git a/assets/scss/live.scss b/assets/scss/live.scss index e3611b66c..3840f020d 100644 --- a/assets/scss/live.scss +++ b/assets/scss/live.scss @@ -1,5 +1,6 @@ @import 'variables'; @import 'mixin'; + .btn-a { display: inline-block; padding: 0 53px; @@ -10,10 +11,12 @@ color: #ffffff; box-shadow: 0 10px 50px 0 rgba(34, 43, 62, 0.1), 0 8px 16px 0 rgba(33, 43, 61, 0.2), 0 10px 50px 0 rgba(34, 43, 62, 0.1); background-image: linear-gradient(to bottom, rgba(85, 188, 138, 0), rgba(85, 188, 138, 0.1) 97%), linear-gradient(to bottom, #55bc8a, #55bc8a); + &:hover { box-shadow: none; } } + .section-1 { position: relative; padding-top: 124px; @@ -40,16 +43,19 @@ position: relative; width: 840px; height: 400px; + @media only screen and (max-width: $mobile-max-width) { width: 100%; height: auto; } + img { width: 100%; height: 100%; min-height: 200px; object-fit: cover; } + button { position: absolute; right: 20px; @@ -62,6 +68,7 @@ cursor: pointer; box-shadow: 0 10px 50px 0 rgba(34, 43, 62, 0.1), 0 8px 16px 0 rgba(33, 43, 61, 0.2), 0 10px 50px 0 rgba(34, 43, 62, 0.1); background-image: linear-gradient(to bottom, rgba(85, 188, 138, 0), rgba(85, 188, 138, 0.1) 97%), linear-gradient(to bottom, #55bc8a, #55bc8a); + &:hover { box-shadow: none; } @@ -73,12 +80,14 @@ width: 320px; height: 400px; padding: 10px; + @media only screen and (max-width: $mobile-max-width) { max-width: 320px; width: auto; height: auto; margin: 0 auto; } + h2 { margin-bottom: 10px; font-size: 18px; @@ -116,8 +125,8 @@ font-size: 16px; line-height: 28px; letter-spacing: -0.04px; - color: #919aa3; - + color: #919aa3; + img { vertical-align: middle; margin-right: 4px; @@ -127,8 +136,8 @@ a { margin: 34px auto 0; height: 40px; - padding: 0 28px; - line-height: 40px; + padding: 0 28px; + line-height: 40px; } .tag { @@ -165,12 +174,12 @@ padding-bottom: 40px; } - & > div { + &>div { - & > .video-tab-ul { + &>.video-tab-ul { padding: 0 34px; border-radius: 5px; - box-shadow: 0 4px 16px 0 rgba(7,42,68,.1); + box-shadow: 0 4px 16px 0 rgba(7, 42, 68, .1); background-color: #fff; li { @@ -188,18 +197,19 @@ text-align: center; &:hover { - box-shadow: 0 8px 16px 0 rgba(101,193,148,.2),0 0 50px 0 rgba(101,193,148,.1); + box-shadow: 0 8px 16px 0 rgba(101, 193, 148, .2), 0 0 50px 0 rgba(101, 193, 148, .1); background-color: #55bc8a; color: #fff; } } + .active { - box-shadow: 0 8px 16px 0 rgba(101,193,148,.2),0 0 50px 0 rgba(101,193,148,.1); + box-shadow: 0 8px 16px 0 rgba(101, 193, 148, .2), 0 0 50px 0 rgba(101, 193, 148, .1); background-color: #55bc8a; color: #fff; } - li + li { + li+li { margin-left: 12px; } } @@ -207,11 +217,12 @@ .video-ul { margin-top: 20px; font-size: 0; + @media only screen and (max-width: $mobile-max-width) { text-align: center; } - & > li { + &>li { position: relative; display: inline-block; width: 360px; @@ -225,18 +236,18 @@ text-align: left; cursor: pointer; - & > img { + &>img { width: 100%; height: 100%; } &:hover { - & > div { + &>div { height: 202px; } } - & > div { + &>div { position: absolute; left: 0; right: 0; @@ -247,14 +258,14 @@ transition: all .2s ease-in-out; overflow: hidden; - & > .btn { + &>.btn { position: absolute; left: 50%; bottom: 120px; transform: translateX(-50%); } - & > div { + &>div { position: absolute; left: 0; right: 0; @@ -269,7 +280,7 @@ color: #fff; padding: 8px 0; margin-bottom: 6px; - border-bottom: 1px solid hsla(0,0%,100%,.1); + border-bottom: 1px solid hsla(0, 0%, 100%, .1); text-overflow: ellipsis; white-space: nowrap; overflow: hidden; @@ -306,7 +317,7 @@ } } - & > div { + &>div { margin-top: 20px; text-align: center; @@ -342,7 +353,7 @@ padding: 0; border-radius: 0; font-size: 0; - + .video-div { height: 100%; } @@ -363,7 +374,7 @@ width: 100%; max-width: 100%; height: auto; - + iframe { width: 100%; height: 300px; @@ -371,99 +382,221 @@ } } -.section-4 { - background-image: linear-gradient(113deg, #4a499a 27%, #8552c3 81%); - .common-layout { - white-space: nowrap; - overflow: auto; - & > div { - box-sizing: border-box; - display: inline-block; - vertical-align: top; - white-space: normal; - width: 140px; - height: 225px; - margin: 80px 40px; - padding-top: 20px; - border-top: 1px solid #a1b3c4; - .time-div { +.common-layout-special { + white-space: nowrap; + overflow: auto; + height: 535px; + background-image: linear-gradient(147.87deg, #4A499A 16%, #8552C3 85.01%);; + + @media only screen and (max-width: $mobile-max-width) { + width: 100%; + height: auto; + } + + .meetup-box { + max-width: 1320px; + margin: 0 auto; + + @media only screen and (max-width: $mobile-max-width) { + width: 100%; + } + + .meetup-title { + font-size: 32px; + line-height: 45px; + color: #fff; + text-align: center; + padding-top: 56px; + } + + .innerBox { + padding: 0px 80px; + position: relative; + + @media only screen and (max-width: $mobile-max-width) { + width: 100%; + box-sizing: border-box; + padding: 0 20px; + } + + &>ul { + margin-top: 16px; display: flex; + background: linear-gradient(to top, rgba(255, 255, 255, 0.08) 5%, transparent 5%) no-repeat; - .right { - margin-left: 4px; - font-weight: bold; - line-height: 1; - color: #ffffff; - .date { - margin-bottom: 4px; - font-size: 24px; + @media only screen and (max-width: $mobile-max-width) { + overflow: scroll; + } + + li { + width: 80px; + height: 40px; + line-height: 24px; + color: rgba(255, 255, 255, 0.15); + display: flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + box-sizing: border-box; + } + + .active { + color: rgba(255, 255, 255, 0.7); + border-bottom: solid 2px rgba(255, 255, 255, 0.7); + } + } + + .yearBox { + position: relative; + display: flex; + align-items: center; + min-height: 377px; + overflow: hidden; + + @media only screen and (max-width: $mobile-max-width) { + width: 100%; + align-items: flex-start; + overflow: auto; + } + + .active { + display: flex; + + @media only screen and (max-width: $mobile-max-width) { + flex-direction: column; } - .time { - font-size: 14px; + } + + ul { + display: none; + position: absolute; + + li { + height: 258px; + width: 373px; + position: relative; + margin-right: 20px; + + @media only screen and (max-width: $mobile-max-width) { + width: 330px; + margin: 0; + margin-top: 20px; + } + + p { + text-align: center; + font-weight: 500; + font-size: 20px; + line-height: 28px; + color: #FFFFFF; + } + + img { + margin-top: 20px; + width: 100%; + } + + button { + position: absolute; + right: 10px; + bottom: 10px; + padding: 5px 10px; + border-radius: 14px; + font-size: 8px; + color: #fff; + border: none; + cursor: pointer; + box-shadow: 0 10px 50px 0 rgba(34, 43, 62, 0.1), 0 8px 16px 0 rgba(33, 43, 61, 0.2), 0 10px 50px 0 rgba(34, 43, 62, 0.1); + background-image: linear-gradient(to bottom, rgba(85, 188, 138, 0), rgba(85, 188, 138, 0.1) 97%), linear-gradient(to bottom, #55bc8a, #55bc8a); + + @media only screen and (max-width: $mobile-max-width) { + right: 10px; + bottom: 35px; + } + } + + &:last-child { + margin-right: 0; + } } } } - h3 { - height: 60px; - margin: 21px 0 47px; - font-size: 14px; - font-weight: 500; - line-height: 1.43; - color: #d5dee7; - a { - color: #d5dee7; - - &:hover { - color: #008a5c; - } - } - } - - button { - font-size: 12px; - font-weight: 600; - line-height: 2; - border: none; - padding: 5px 28px; - border-radius: 17px; + .left-arrow { + display: block; + background: url('/images/live/arrow.svg'); + width: 40px; + height: 40px; + position: absolute; + bottom: 151px; + left: 0px; + transform: rotate(180deg); cursor: pointer; - box-shadow: 0 10px 50px 0 rgba(34, 43, 62, 0.1), 0 8px 16px 0 rgba(33, 43, 61, 0.2); + &:hover { - box-shadow: none; + background: url('/images/live/arrow-hover.svg'); } } - .over-btn { - color: #ffffff; - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1) 97%), linear-gradient(to bottom, #242e42, #242e42); + .right-arrow { + display: block; + background: url('/images/live/arrow.svg'); + width: 40px; + height: 40px; + position: absolute; + bottom: 151px; + right: 0px; + cursor: pointer; + + &:hover { + background: url('/images/live/arrow-hover.svg'); + } } - .notive-btn { - color: #3d3e49; - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1) 97%), linear-gradient(to bottom, #ffffff, #ffffff); + .hidden { + display: none; + + @media only screen and (max-width: $mobile-max-width) { + width: 100%; + } + } + + .show { + display: block; + } + + @media only screen and (max-width: $mobile-max-width) { + .show { + display: none; + } } } } + } + .section-5 { .common-layout { position: relative; padding-top: 100px; padding-left: 60px; padding-bottom: 30px; + @media only screen and (max-width: $mobile-max-width) { padding-left: 20px; } + .left-div { position: relative; width: 600px; + @media only screen and (max-width: $mobile-max-width) { width: 100%; z-index: 2; } + h2 { font-size: 32px; font-weight: 600; @@ -485,10 +618,11 @@ } } - & > img { + &>img { position: absolute; top: 88px; right: 0; + @media only screen and (max-width: $mobile-max-width) { opacity: 0.3; } diff --git a/assets/scss/mixin.scss b/assets/scss/mixin.scss index 136ddc93b..813efff29 100644 --- a/assets/scss/mixin.scss +++ b/assets/scss/mixin.scss @@ -180,3 +180,19 @@ padding-top: 20px; } } + +@mixin common-layout-special { + position: relative; + width: 1300px; + margin: 0 auto; + padding-left: 260px; + + @media only screen and (max-width: $width-01) { + width: 100%; + } + + @media only screen and (max-width: $width-02) { + padding: 10px; + padding-top: 20px; + } +} diff --git a/content/zh/live/_index.md b/content/zh/live/_index.md index fa063d9df..2aa140ad8 100644 --- a/content/zh/live/_index.md +++ b/content/zh/live/_index.md @@ -1,7 +1,7 @@ --- title: live - KubeSphere | Enterprise container platform, built on Kubernetes description: KubeSphere is an open source container platform based on Kubernetes for enterprise app development and deployment, suppors installing anywhere from on-premise datacenter to any cloud to edge. -keywords: KubeSphere,DevOps,Istio,Service Mesh,Jenkins +keywords: KubeSphere, DevOps, Istio, Service Mesh, Jenkins css: "scss/live.scss" section1: @@ -337,38 +337,93 @@ section3: section4: overImg: /images/live/over.svg noticeImg: /images/live/notice.svg + title: Meetup 回顾 list: - - title: Apache APISIX Ingress Controller 实现与上手实践 - date: 08/26 - time: 20:00 - 21:00 - lastTime: 2021-08-26T21:00:00Z - url: ./apisix826-live/ + - year: 2021 + meetup: - - title: 使用 Flomesh 进行 Dubbo 微服务的服务治理 - date: 08/19 - time: 20:00 - 21:00 - lastTime: 2021-08-19T21:00:00Z - url: ./pipy819-live/ + - place: 芜湖站 + img: https://pek3b.qingstor.com/kubesphere-community/images/uisee0916-live-cover.png + meetupUrl: https://www.baidu.com - - title: KubeSphere v3.1 开源社区交流会直播回放 - date: 04/29 - time: 20:00 - 21:00 - lastTime: 2021-04-29T21:00:00Z - url: ./3.1-live/ + - place: 杭州站 + img: https://pek3b.qingstor.com/kubesphere-community/images/wasm0909-live-cover.png + meetupUrl: - - title: 基于 KubeSphere 与 BotKube 搭建 K8s 多集群监控告警体系 - date: 01/14 - time: 20:00 - 21:00 - lastTime: 2021-01-14T21:00:00Z - url: ./botkube-live/ + - place: 成都站 + img: https://pek3b.qingstor.com/kubesphere-community/images/nebula0902-live-cover.png + meetupUrl: - - title: 企业级云原生多租户通知系统 Notification Manager - date: 01/06 - time: 20:00 - 21:00 - lastTime: 2021-01-06T21:00:00Z - url: ./nm-live/ + - place: 上海站 + img: https://pek3b.qingstor.com/kubesphere-community/images/apisix826-live-cover.png + meetupUrl: + - place: 杭州站 + img: https://pek3b.qingstor.com/kubesphere-community/images/uisee0916-live-cover.png + meetupUrl: + - place: 成都站 + img: https://pek3b.qingstor.com/kubesphere-community/images/wasm0909-live-cover.png + meetupUrl: + + - place: 上海站 + img: https://pek3b.qingstor.com/kubesphere-community/images/nebula0902-live-cover.png + meetupUrl: + + - place: 杭州站 + img: https://pek3b.qingstor.com/kubesphere-community/images/apisix826-live-cover.png + meetupUrl: + + - place: 成都站 + img: https://pek3b.qingstor.com/kubesphere-community/images/uisee0916-live-cover.png + meetupUrl: + + - place: 成都站 + img: https://pek3b.qingstor.com/kubesphere-community/images/wasm0909-live-cover.png + meetupUrl: + + - year: 2022 + meetup: + + - place: 上海站 + img: https://pek3b.qingstor.com/kubesphere-community/images/uisee0916-live-cover.png + meetupUrl: + + - place: 杭州站 + img: https://pek3b.qingstor.com/kubesphere-community/images/wasm0909-live-cover.png + meetupUrl: + + - place: 成都站 + img: https://pek3b.qingstor.com/kubesphere-community/images/nebula0902-live-cover.png + meetupUrl: + + - place: 成都站 + img: https://pek3b.qingstor.com/kubesphere-community/images/apisix826-live-cover.png + meetupUrl: + + - year: 2023 + meetup: + - place: 上海站 + img: https://pek3b.qingstor.com/kubesphere-community/images/uisee0916-live-cover.png + meetupUrl: + + - place: 杭州站 + img: https://pek3b.qingstor.com/kubesphere-community/images/wasm0909-live-cover.png + meetupUrl: + + - place: 成都站 + img: https://pek3b.qingstor.com/kubesphere-community/images/nebula0902-live-cover.png + meetupUrl: + + - place: 成都站 + img: https://pek3b.qingstor.com/kubesphere-community/images/apisix826-live-cover.png + meetupUrl: + + - place: 终点站 + img: https://pek3b.qingstor.com/kubesphere-community/images/apisix826-live-cover.png + meetupUrl: + + section5: title: 分享您的主题 content: 您是否也想在社区分享您的云原生实践经验?即可加入 KubeSphere 社区云原生直播计划,提交分享主题,将有 KubeSphere 周边礼品相送!最重要的是您可以:提升自身软实力,如演讲能力、总结能力;提高自身在云原生领域的知名度;展现企业的技术实力及优秀想法;帮助推广您社区开源的项目。 diff --git a/layouts/live/list.html b/layouts/live/list.html index 6f1239179..76d0fa765 100644 --- a/layouts/live/list.html +++ b/layouts/live/list.html @@ -2,23 +2,23 @@ {{ with .Params.section1 }}
-
-

{{ .title }}

-
+
+

{{ .title }}

+
{{ end }} {{ with .Params.section2 }}
-
- -
+
+ +
{{ with .notice }}

{{ .title }}

@@ -36,8 +36,8 @@
{{ .tag }}
{{ end }} -
-
+
+
{{ end }} @@ -63,52 +63,54 @@ {{ end }} - {{ $overImg := .Params.section4.overImg}} {{ $noticeImg := .Params.section4.noticeImg}} {{ with .Params.section4 }} -
-
- {{ range .list }} -
-
- {{$over := (time .lastTime).Unix}} - {{ if ge now.Unix $over}} - - {{ else }} - +
+
+
{{ .title }}
+
+
    + {{ range .list }} + {{ with . }} +
  • {{ .year }}
  • + {{ end }} + {{ end }} +
+ +
+ {{ range .list }} + {{ with . }} + + {{ end }} {{ end }} -
-

{{ .date }}

-

{{ .time }}

-
-

{{ .title }}

- {{ if ge now.Unix $over}} - - {{ else }} - - {{ end }} +
- {{ end }}
+ {{ end }} + {{ with .Params.section5 }}
@@ -125,15 +127,15 @@ {{ end }} \ No newline at end of file diff --git a/static/images/live/arrow-hover.svg b/static/images/live/arrow-hover.svg new file mode 100644 index 000000000..669f02027 --- /dev/null +++ b/static/images/live/arrow-hover.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/images/live/arrow.svg b/static/images/live/arrow.svg new file mode 100644 index 000000000..a95ce13ed --- /dev/null +++ b/static/images/live/arrow.svg @@ -0,0 +1,4 @@ + + + +