library(shiny)
library(shinyjs)
## 
## Attaching package: 'shinyjs'
## The following object is masked from 'package:shiny':
## 
##     runExample
## The following objects are masked from 'package:methods':
## 
##     removeClass, show
ui <- fluidPage(
  useShinyjs(),
  tags$head(
    tags$style(HTML("
      body { background-color: #fff0f6; font-family: 'Arial'; text-align: center; }
      .main-box { margin-top: 80px; padding: 30px; border-radius: 20px; background: white; display: inline-block; box-shadow: 0 10px 25px rgba(0,0,0,0.1); min-width: 350px; }
      .btn-yes { background-color: #ff4d4f; color: white; padding: 12px 20px; border: none; border-radius: 8px; margin: 10px; font-weight: bold; }
      .btn-no { background-color: #52c41a; color: white; padding: 12px 20px; border: none; border-radius: 8px; margin: 10px; font-weight: bold; }
      h2 { color: #c41d7f; }
    "))
  ),
  
  div(class = "main-box",
      uiOutput("ekran_icerigi")
  )
)

server <- function(input, output, session) {
  
  # Mevcut soru indeksini tutuyoruz
  v <- reactiveValues(
    step = 0,
    sorular = c(
      "Kus muyuz?",
      "Emin misin?",
      "Gercekten mi?",
      "Bak son kararin mi?",
      "Yani simdi kesin kusuz oyle mi?",
      "Peki, o zaman bu aksam yemekler senden?"
    )
  )
  
  # Ekran icerigini dinamik olarak olusturuyoruz
  output$ekran_icerigi <- renderUI({
    if (v$step == -1) {
      # Barisma mesaji
      tagList(
        h2("Biliyordum ki kiyamazsin! ❤️"),
        p("Seni cok seviyorum...")
      )
    } else if (v$step >= length(v$sorular)) {
      # Sorular bittiginde darlama mesaji
      tagList(
        h2("Valla ben de yoruldum..."),
        p("Gel barisalim artik 🥺"),
        actionButton("baris", "Tamam Baristik 😍", class = "btn-no")
      )
    } else {
      # Normal soru ekrani
      tagList(
        h2(v$sorular[v$step + 1]),
        actionButton("evet_bas", "Evet", class = "btn-yes"),
        actionButton("hayir_bas", "Hayir", class = "btn-no")
      )
    }
  })
  
  # Evet butonuna basilinca bir sonraki soruya gec
  observeEvent(input$evet_bas, {
    v$step <- v$step + 1
  })
  
  # Herhangi bir soruda Hayir'a basilinca baris (step = -1)
  observeEvent(input$hayir_bas, {
    v$step <- -1
  })
  
  # Final butonuna basinca baris
  observeEvent(input$baris, {
    v$step <- -1
  })
}

shinyApp(ui = ui, server = server)
Shiny applications not supported in static R Markdown documents